Professional Documents
Culture Documents
1/24
Le GUI (Graphical user interface) sono quelle composte da finestre bottoni icone immagini In Java AWT (Abstract Window Toolkit) la parte che si occupa di gestire linterfaccia utente. E contenenuta nel package java.awt Il package SWING rappresenta levoluzione di AWT nella costruzione delle interfacce porta grafiche. Si importa con javax.swing
Pag 1
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Il Contenitore Panel E un contenitore intermedio rispetto al Frame. Dentro una Frame ci possono essere pi Panel Si realizza con Panel p = new Panel ( ); Il metodo add aggiunge componenti al Panel o al Frame oppure Panel al Frame in questo modo: f.add(p);
Pag 2
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
I componenti di AWT
Le etichette
Ecco la Label con 3 possibili costruttori: Label( ); Label(Ciao); Label(Ciao,Label.LEFT); Creare una etichetta, aggiungerla Cambiare i colori alle etichette: Label et= new Label( ); et.setBackGround(Color.red); et.setForeGround(Color.yellow);
I bottoni
Button( ); Button(Premi); Creare un Bottone, disabilitarlo, abilitarlo: Button b1 = new Button (OK); b1.setEnabled(true); b1.setEnabled(false);
Pag 3
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Le Caselle di testo
La creo con: TextField tf=new TextField( ); Ha 4 tipi di costruttori: TextField( ); TextField(inserisci); TextField( 10); TextField(inserisci,10); Ha 3 metodi importanti: esempio: tf.setText(cognome); s=tf.getText( ); tf.setEditable(false);
Le aree di testo
Creazione: TextArea ta = new TextArea( ); Ha 4 costruttori: TextArea( ); TextArea(5,10 ); TextArea(Prima Riga ); TextArea(Prima Riga ,5,10,SCROLLBARS_BOTH); E i metodi: setText( ); getText( ); setEditable(true); append(nuova riga);
Pag 4
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Le caselle combinate
Le combobox vanno create e poi si aggiungono voci alloggetto:
Choice cb= new Choice( ); ATTENZIONE: Choice in AWT, in SWING la classe JComboBox
Metodo per aggiungere nella tendina:
Int x=getSelectedItem ( );
Metodo per selezionare una voce della tendina:
Pag 5
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esempi:
dopo Panel p =new Panel( ) scelgo quale setLayout il piu adatto alla mia finestra p.setLayout(new FlowLayout()); p.setLayout(new BorderLayout()); p.setLayout(new GridLayout(3,2,10,10));
p p1 p2 p3
f.getContentPane().add(p);
Pag 6
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
e impostare la posizione assoluta nel componente nella finestra. Ma in questo caso consigliabile disattivare il ridimensionamento della finestra
setBounds(100,100,10,10) indica la posizione x y del componente, la larghezza e laltezza del componente Esempio: p.setLayout(null); Button b1=new Button (OK); p.add(b1); b1.setBounds(50,50,25,25);
Pag 7
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esercizio 2
Esercizio 3
Pag 8
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Pag 9
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Modialit di esecuzione
Linterfaccia Action Listener contiene un solo metodo astratto che deve essere ridefinito: actionPerformed( ) Siccome possono esistere pi bottoni che generano un evento si puo fare riferimento allo stesso ascoltatore ed eseguire un controllo allinterno del metodo per verificare quale bottone stato premuto. Il metodo ActionPerformed riceve come parametro un oggetto di classe ActionEvent. I metodi getActionCommand( ); getSource( ); esempio String s= e.getActionCommand( ); esempio if ( b==e.getSource( ))
Pag 10
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class MyApp_1 extends JFrame { public MyApp_1 ( ) { crea_interfaccia_grafica; x.addActionListener (new Ascolta ( )); } public class void main (String args[]) { new MyApp_1 ( ); } }
Ascolta.java
public class Ascolta implements ActionListener { private . public Ascolta ( ) { } public void actionPerformed( Action Event e) { System.out.println(hai premuto + e.getActionCommand( )); } }
MyApp_1 il programma Ascolta la classe ascoltatore che implementa linterfaccia ActionListener X il bottone che genera l evento e viene descritto in actionPerformed Cliccando sul bottone viene stampata la scritta che descrive il bottone stesso. Lo facciamo attraverso il metodo actionPerformed e il metodo getActionCommand
Pag 11
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
MyApp_1.java
import java.awt.*; import javax.swing.*; import java.awt.event.*; public class MyApp_1 extends JFrame { public MyApp_1 ( ) { crea_interfaccia_grafica; x.addActionListener (new Ascolta ( )); setVisible(true); } public class void main (String args[]) { new MyApp_1 ( ); } } class Ascolta implements ActionListener { private . public Ascolta ( ) { } public void actionPerformed( Action Event e) { System.out.println(hai premuto + e.getActionCommand( )); } }
Pag 12
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Creare uninterfaccia grafica con un bottone e una label. Cliccando sul bottone, al posto di Ancora niente compare Hai cliccato La finestra si disegna nel costruttore della classe MyAppl Registro lorigine dellevento clic del Mouse sempre nel costruttore Es: b.addActionListener(new MyGestore(et));
Scrivo il main della mia classe che consiste nella sola creazione delloggetto della classe finestra public static void main (String args[]) { new MyAppJ1 ( ); } Creo la classe ascoltatore che implementa linterfaccia ActionListener class MyGestoreJ1 implements ActionListener Definisco il metodo che realizzer il cambio delletichetta della label attraverso il metodo setText(Hai cliccato) public void actionPerformed (ActionEvent e) { et.setText("Hai cliccato!"); }
Pag 13
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyAppJ1 extends JFrame { MyAppJ1( ) { JFrame f=new JFrame ("My Applicazione 1"); JPanel p=new JPanel(); JLabel et=new JLabel ("Ancora niente"); JButton b=new JButton ("Premi Bottone"); p.add(b); p.add(et); et.setBackground(Color.yellow); et.setForeground(Color.blue); p.setBackground(Color.yellow); f.getContentPane().add(p); //f.add(p); f.setSize(300,200); f.setLocation(0,0); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b.addActionListener(new MyGestore(et)); f.setVisible(true); } public static void main (String args[]) { new MyAppJ1 ( ); } } class MyGestore implements ActionListener { private JLabel et; public MyGestore (JLabel et) { this.et=et; } public void actionPerformed (ActionEvent e) {
et.setText("Hai cliccato!");
System.out.println(e.getActionCommand());
} }
Pag 14
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esercizio 1
Cliccando sul bottone, nel text field viene sostituita la scritta ancora niente con Hai cliccato!
Esercizio 2
Cliccando sul bottone, nel text field viene conteggiato il numero di clic
Pag 15
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esercizio 3
Inserire due bottoni: uno colora il pannello di giallo, laltro di rosso, nel textfield compare il nome del bottone cliccato
Esercizio 4
Collocare un bottone, un textField e una textArea. Scrivendo nel textfield e cliccando sul bottone la textArea si riempie una riga alla volta e la textField si svuota dopo ogni clic
Pag 16
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esercizio 5
Inserire una Label, una combobox con un certo numero di colori, un bottone. Apro la combobox, scelgo il colore, clicco sul bottone e il pannello cambia colore
Esercizio 6
Disegnare la calcolatrice con i 12 bottoni e la TextField. Cliccando sui bottoni, nella textField compare il numero corrispondente. Ma ogni clic sostituisce il numero precedente. Il numero allineato a destra, la cornice del textfield pi spessa, il carattere Arial size 12
Pag 17
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esercizio 7
Ora i numeri dei bottoni si aggiungono uno dopo laltro nella TextField. Premendo CE la TextField va 0 (zero)
Esercizio 8
Realizziamo ora una semplice calcolatrice Digito un numero, poi unoperazione, un secondo numero, e poi con = ottengo il risultato delloperazione
Pag 18
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Conversioni
Da stringa ad intero: oppure Da intero a Stringa int num=Integer.parseInt( s ); int num= Integer.valueOf( s ).intValue( ); s=+num;
Pag 19
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Pag 20
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Lo inserisco in un panello
p2.add(immagine);
Utilizzo il metodo setIcon e la classe ImageIcon per inserire limmagine nel pannello
immagine.setIcon(new ImageIcon("Classe3g.jpg"));
Pag 21
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Esercizio
Creare tanti bottoni quante sono le immagini che hai in memoria (hard disk) relative a: gli studenti della classe oppure i giocatori della tua squadra oppure le citt dItalia Cliccando sul bottone si inserisce nel pannello limmagine che ha il nome del bottone a cui aggiungo lestensione .jpg Per esempio: clicco su Rossi, si inserisce limmagine rossi.jpg Al contrario di altri programmi java non da errore se il file non presente.
Pag 22
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
JMenuBar
la barra su cui appoggio le voci del menu : File Modifica Formato .. La dichiaro con JMenu barra = new JMenuBar(); e al termine la inserisco con this.setJMenuBar(barra)
JMenu
JMenu menu poi menu=new JMenu(File); barra.add(menu); inserisco File nella barra del menu ed ora le voci che compongono File: Nuovo Apri Salva etc:
JMenuItem
JMenuItem voce voce=new MenuItem(Nuovo); menu.add(voce); voce.addActionListener(this); proseguo poi con il menu Modifica menu=new JMenu(Modifica); barra.add(menu); e le voci del menu Modifica ()
Pag 23
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza
Pag 24
Manuale pratico della 4G Anno scolatico 2009/10 by P. Carrazza