Java SE 6
Programmazione grafica (1)
[email protected]
[email protected]
Programmazione Grafica
java.awt -> Abstrast Window Toolkit
● Libreria di classi per la programmazione GUI.
● Componenti appaiono e si comportano diversamente su
diverse piattaforme.
● Ma... generalizzando non si producono graficamente
buoni risultati.
Dal 1996 comincia la costruizione di una libreria di classi per
ottimizzare la programmazione GUI.
Nascita di quello che sarà la libreria SWING
javax.swing
Tutti i componenti della libreria swing cominciano con una
J:
Classe JFrame (1)
Package javax.swing
java.lang.Object > java.awt.Component > java.awt.Container >
java.awt.Window > java.awt.Frame > javax.swing.JFrame
● Finestra di livello massimo (non contenuta in altre finestre)
● Pulsanti, barra e icone disegnate dal sistema operativo
● Sono dei contenitori, possono contenere altri oggetti
(pulsanti, caselle di testo, etc.)
Alcuni costruttori:
● JFrame( )
● JFrame(String titoloDellaFinestra)
Dichiarazione di un oggetto JFrame:
● JFrame f = new JFrame( );
● JFrame f = new JFrame("Titolo della finestra")
Classe JFrame (2)
Alcuni metodi:
● setTitle(String title)
● setSize(int larghezza, int altezza)
● setLocation(int x, int y)
● setVisible(boolean visibilità)
// sostituisce show( )
● setDefaultCloseOperation(int operazione)
operazione è una costante della classe di JFrame:
EXIT_ON_CLOSE -> uscita standard di sistema
DO_NOTHING_ON_CLOSE -> non fa nulla (Gestione!)
HIDE_ON_CLOSE -> nascondi finestra (Gestione!)
DISPOSE_ON_CLOSE -> chiudi e gestisci (Gestione!)
Classe JFrame (3)
Esempio creazione di una finestra:
JFrame f=new JFrame( );
f.setSize(400,300);
f.setLocation(100,100);
f.setTitle("Prova");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
Esercizio S01
Creazione di una finestra
Realizzare un programma che crei una finestra di
dimensione 400 x 300 posizionata a 200, 200 con il titolo
"Primo esercizio con le Swing".
Nome progetto S01Finestra
Classe JFrame (4)
Normalmente la procedura utilizzata è quella di estendere la
classe JFrame per personalizzarla facendo degli override dei
metodi.
Esempio:
class MiaFinestra extends JFrame{
public MiaFinestra(){
setSize(300,200);
...
...
}
...
}
Dichiarazione:
MiaFinestra f = new MiaFinestra();
Esercizio S02
Creazione di una finestra
Modificare il programma S01 creando una classe
MiaFinestra estendendo la classe JFrame
Nome progetto S02FinestraExtended
Classe Toolkit (1)
Classe statica che raccoglie numerosi metodi che si
interfacciano con il sistema di gestione nativo.
Dimensioni dello schermo:
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension schermo = kit.getScreenSize();
int larg = schermo.width;
int lung = schermo.height;
o
int larg = (int) schermo.getWidth();
int lung = (int) schermo.getHeight();
Classe Toolkit (2)
Caricamento di una immagine:
Toolkit kit = Toolkit.getDefaultToolkit();
Image img= kit.getImage("icon.gif");
setIconImage(img);
Normalmente è comodo raggruppare le immagini in una
cartella dentro il progetto. Si crea una cartella di nome img.
In questo caso bisogna tener conto del percorso relativo:
Image img= kit.getImage("img/icon.gif");
setIconImage(img);
Esercizio S03
Creazione di una finestra centrata con un icona.
Realizzare un programma che crei una finestra centrata
automaticamente sullo schermo. La finestra si chiamerà
"Finestra centrata" e dovrà essere di dimensioni 300 x 200
e avere una icona personalizzata.
Nome progetto S03FinestraCentrata
Aggiunta:
Modificare il programma in maniera da creare un metodo
che centri la finestra