Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing...

13
Elementi di Java Swing LSO 2008

Transcript of Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing...

Page 1: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Elementi di Java Swing

LSO 2008

Page 2: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

AWT e Swing

AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce per la realizzazione di applicazioni grafiche(GUI).

AWT: Abstract WindowingToolkit Definito nel package java.awt;

Legato al sistema grafico nativo del sistema operativo;

Velocità di esecuzione;

SWING Definito nel package javax.swing;

Costruito su AWT(Estende AWT), fornisce una GUI più sofisticata rispetto ad AWT;

Essendo scritto in puro Java, funziona allo stesso modo su tutte le piattaforme, al contrario delle AWT le quali sono legate al sistema grafico nativo del sistema operativo;

Lo svantaggio di questi componenti è la pesantezza, quindi una più lenta esecuzione;

Abbiamo il vantaggio di una uniformità di visualizzazione tra diverse piattaforme;

Page 3: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Programmazione di interfacce

Per realizzare un’interfaccia grafica dobbiamo:

1) Disegnare l’interfaccia, con le varie componenti(Bottoni, campi di testo, slider, ecc...);

2) Definire il comportamento delle azioni eseguite sull’interfaccia(Es. Pressione di un bottone,...);

Per mandare in esecuzione la GUI, dobbiamo:

1) Nel main istanzieremo l’interfaccia;

2) L’interfaccia rimane in attesa che qualcuno faccia qualcosa. Ad ogni operazione fatta dall’utente verranno eseguite delle azioni definite(parti di codice);

Page 4: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Disegnare l’interfaccia con Swing

Swing fornisce una struttura gerarchica a componenti;

Un componente può essere un widget, o un contenitore;

Un contenitore può contenere widget e altri contenitori;

Es di Widget:

Jlist

Page 5: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Esempio di interfaccia

JPanel

Invia Messaggio

JFrame

Seleziona utente:

Struttura

JFrame

JPanel

JButton JLabel

Contenitori

JList

Jlist

Page 6: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Codice dell’esempioJFrame f = new JFrame(“Frame 1”);

JPanel p = new JPanel( );

JButton b = new JButton(“Invia Messaggio”);

JLabel l = new JLabel(“Seleziona utente:”);

String[] data = {"one", "two", "three", "four"};

JList user = new JList(data);

p.add(b);

p.add(l);

p.add(user);

f.getContentPane().add(p);

Creazione delle componenti

Struttura delle componenti Nota:

L’interfaccia viene costruita in maniera “bottom up”. Prima creiamo le componenti e poi le “attacchiamo”

Page 7: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

7

Gerarchia dei contenitori

Top-level container:

Contenitori che non possono essere inseriti in altri contenitori

Es. JFrame, JDialog, Japplet

Intermediate container:

Servono per semplificare la posizione di sottoparti dell’interfaccia

Es. JPanel, JSplitPane, JTabbedPane

Page 8: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Posizione dei componenti

Come posizionare le varie componenti?

Si utilizzano dei gestori di layoutManager(layoutManager);

Il layout manager si occupa di posizionare(ed eventualmente riposizionare) le vari parti che compongono l’interfaccia;

Per ogni contenitore può essere impostato un layoutManager;

Page 9: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Layout Manager

Left to right,Top to bottom

c

n

s

ew

FlowLayout GridLayout

BorderLayout

none, programmer sets x,y,w,h

null

One at a time

CardLayout GridBagLayout

JButton

Page 10: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Layout complessi

Per ottenere layout complessi, si possono usare delle combinazione di layout.

Es:

c

BorderLayout

One at a time

JButton

CardLayout

GridLayout

Page 11: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Interazione con l’interfaccia

Le azioni che l’utente compie sull’interfaccia, generano degli eventi.

• Click o double clicks del mouse;

• Inserimento di testo in textBox;

• Chiusura di una finestra;

• Ridimensionamento di una finestra;

• ....

Bisogna definire “cosa fare” nel momento in cui si verifica un’evento;

Page 12: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Eventi

jSendButton.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent evt) {

jSendButtonActionPerformed(evt);

}

});

Page 13: Elementi di Java Swing - cs.unibo.itsangio/SO_currentAA/Luc_SO/Schirinzi/Swing.pdf · AWT e Swing AWT e Swing mettono a disposizione del programmatore una serie di classi e interfacce

Riferimenti

Esempi su SWING

http://java.sun.com/docs/books/tutorial/uiswing/