Forum Informatica Unict

Vecchi ordinamenti ad esaurimento => Laboratorio di Interazione => Topic started by: James on 21-11-2008, 21:45:39



Title: Lezione venerdì 21 novembre
Post by: James on 21-11-2008, 21:45:39
Quali argomenti sono stati trattati a lezione? Il prof. ha assegnato esercizi particolari da svolgere a casa?


Title: Re:Lezione venerdì 21 novembre
Post by: Root on 21-11-2008, 23:20:39
Abbiamo visto tutti i layout che esistono sulla faccia della terra(BorderLayout, BoxedLayout, FlowLayout, etc...)
Poi si è parlato di JPanel etc....

Appena accendo il portatile posto un pò di "codice appunti"


Title: Re:Lezione venerdì 21 novembre
Post by: James on 21-11-2008, 23:26:51
Thank's a lot


Title: Re:Lezione venerdì 21 novembre
Post by: Root on 21-11-2008, 23:45:50
a vouz.... sono appunti e quindi molto incasinati... ma si capisce!
Code:
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.BoxLayout;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
public class Lab_211108
{
    public static void main(String [] args)
    {

/*
  Opacità <--> Trasparenza
  è possibile modificare l'opacità delle JComponent.
  Ad Esempio le JLabel sono trasparenti per default.
  Jpanel per default è opaco.

  setOpaque(boolean);

  La classe JPanel, serve come contenitori o come "tela da disegno".
  Le regole di disposizione degli oggetti all'interno dei contenitori si chiamano Layout,
  sono oggetti che non hanno controparte visuale...
  In Java ogni contenitore ha un Layout, di default BorderLayout (per JPanel è FlowLayout)
  Un layout si aggiunge ad un contenitore mediante
  c.setLayout(new BorderLayout(parametri));
  aggiungere una componente
  c.add(P,BorderLayout.<POS>) ove POS=CENTER,SOUTH,NORD,EAST,WEST
*/

JFrame myFrame = new JFrame();
myFrame.setTitle("BorderLayout");
myFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
myFrame.setBounds(200,200,500,500);
JPanel P = new JPanel();
P.setLayout(new BorderLayout());
JLabel label = new JLabel("Lupacchiotto");
JLabel label1 = new JLabel("Lupacchiotto1");
JLabel label2 = new JLabel("Lupacchiotto2");
JLabel label3 = new JLabel("Lupacchiotto3");
JLabel label4 = new JLabel("Lupacchiotto4");
JLabel label5 = new JLabel("Lupacchiotto5");
label.setOpaque(true);
label1.setOpaque(true);
label2.setOpaque(true);
label3.setOpaque(true);
label4.setOpaque(true);
label5.setOpaque(true);
label.setBackground(Color.CYAN);
label1.setBackground(Color.RED);
label2.setBackground(Color.GRAY);
label3.setBackground(Color.WHITE);
label4.setBackground(Color.YELLOW);
P.add(label, BorderLayout.NORTH);
P.add(label1, BorderLayout.SOUTH);
P.add(label2, BorderLayout.WEST);
P.add(label3, BorderLayout.EAST);
P.add(label4, BorderLayout.CENTER);
myFrame.add(P);
myFrame.setVisible(true);
//BOX LAYOUT mette tutto solo in colonna Y_AXIS o riga X_AXIS
JFrame newFrame = new JFrame();
JPanel trui = new JPanel();
trui.setLayout(new BoxLayout(trui, BoxLayout.Y_AXIS));
trui.add(new JLabel("Salve"));
trui.add(new JLabel("Sono"));
trui.add(new JLabel("BOXLAYOUT"));
newFrame.add(trui);
newFrame.pack();
newFrame.setTitle("BOXLAYOUT");
newFrame.setVisible(true);

//FLOWLAYOUT mette tutto in riga fino ad arrivare al bordo destro, dopodichè va a capo
JFrame ancoraUno = new JFrame();
JPanel myPanel1 = new JPanel();
myPanel1.setBounds(0,0,500,200);
myPanel1.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5));
for(int i = 0; i<10; i++)
    myPanel1.add(new JLabel("Label "+i));
ancoraUno.add(myPanel1);
ancoraUno.pack();
ancoraUno.setTitle("FLOWLAYOUT");
ancoraUno.setVisible(true);

//GRIDLAYOUT mette tutto in griglia
JFrame evvai = new JFrame("GridLayout");
evvai.setLayout(new GridLayout(3,3,3,3));
evvai.add(new JLabel("ciao"));
evvai.add(new JLabel("ciao1"));
evvai.add(new JLabel("ciao2"));
evvai.add(new JLabel("ciao3"));
evvai.add(new JLabel("ciao4"));
evvai.pack();
evvai.setVisible(true);

//si potrebbe anche utilizzare un non layout e posizionare mediante setBounds tutte le componenti
//da utilizzare se il contenitore non è resizable

//GRAPHICS
/*
  Questa è una classe astratta, collezione di regole e vari utili a disegnare sulla componente.
  Spessore penna, stile tratto e modalità di overlay delle linee(sovrapposizione).
  Ad ogni pannello è associato un Graphics

  Graphics g = P.getGraphics();
*/
    }
}



Title: Re:Lezione venerdì 21 novembre
Post by: James on 22-11-2008, 11:42:26
Meeeeeeee sei un pazzo! Molte grazie :yoh  :pray