Your SlideShare is downloading. ×
Introduzione al linguaggio Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduzione al linguaggio Java

208
views

Published on

L'interfaccia grafica: seconda lezione del corso "Java per elettronici ed elettrotecnici"

L'interfaccia grafica: seconda lezione del corso "Java per elettronici ed elettrotecnici"

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
208
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ITIS Max Planck di Lancenigo di Villorba A.S. 2012-2013Java per elettronici ed elettrotecniciSeconda lezione: linterfaccia grafica Prof. PAOLO TOSATO Quest opera è distribuita con licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported.
  • 2. Paolo Tosato Java per elettronici ed elettrotecnici Indice • Componenti e contenitori • Layout • Gestione degli eventi Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 2
  • 3. Paolo Tosato Java per elettronici ed elettrotecnici Componenti e contenitori La parte di un’applicazione che interagisce con l’utente prende il nome di interfaccia grafica. • Interfacce a caratteri • Interfacce grafiche: GUI (Graphical User Interface) L’elemento principale di un’interfaccia grafica è la finestra. La parte grafica è contenuta nei package java.awt e javax.swing. • AWT: Abstract Window Toolkit • Swing: evoluzione di AWT (es.: un pulsante può contenere un’immagine oltre che una scritta) Le interfacce grafiche sono gestite tramite una programmazione guidata dagli eventi (la generazione di un evento è causata da un’azione effettuata dall’utente). Una volta generato un evento, si deve provvedere alla sua gestione, che viene demandata ad un gestire di eventi (a ogni elemento grafico, poiché può generare eventi, va associato un gestore). Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 3
  • 4. Paolo Tosato Java per elettronici ed elettrotecnici Componenti e contenitori L’interfaccia grafica è formata da • Componenti: oggetto con rappresentazione grafica che offre un’interazione con l’utente. Esempi: i pulsanti, le caselle di testo, i menu • Contenitori: oggetto che può contenere componenti e ha il compito di posizionare e dimensionare le componenti al suo interno (layout). Esempi: finestra, pannello, Applet Swing: • Contenitori principali: JFrame, JDialog, Japplet • Contenitori intermedi (indicati anche con il termine pane): JPanel, JScrollPane, JTabbedPane • Componenti atomiche: JLabel, JButton, JTextField, JTextArea, JComboBox. Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 4
  • 5. Paolo Tosato Java per elettronici ed elettrotecnici Componenti e contenitori import javax.swing.*; import java.awt.*; class Finestra { public static void main (String args[]) { JFrame f = new JFrame(); JPanel p = new JPanel(); JLabel l = new JLabel(“Etichetta”); JButton b = new JButton(“Bottone”); p.add(l); p.add(b); /* * Solo con Swing: le componenti dell’interfaccia non possono essere inserite direttamente nel contenitore * principale, ma solo in quello intermedio, ad eccezione della barra dei menu */ Container c = f.getContentPane(); c.add(p); f.setSize(300,200); // larghezza, altezza f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // chiusura finestra } } Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 5
  • 6. Paolo Tosato Java per elettronici ed elettrotecnici Layout A ogni contenitore può essere associato un gestore che si preoccupa della disposizione degli elementi (Layout Manager). Per assegnare un Layout manager a un contenitore si utilizza il metodo setLayout, che riceve come parametro un oggetto che rappresenta il gestore. FlowLayout Le componenti sono disposte per riga e centrate (associato di default a tutti i pannelli) f.setLayout(new FlowLayout()); p.steLayout(new FlowLayout(FlowLayout.LEFT)); // CENTER, RIGHT, LEFT p.add(new JButton(“b1”)); p.add(new JButton(“b2”)); BorderLayout Il contenitore è diviso in 5 regioni ciascuna delle quali può contenere un componente (associato di default a tutti i Frame). JPanel p = new Panel(); p.setLayout(new BorderLayout()); p.add(b, “South”); // North, South, Center, East, West Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 6
  • 7. Paolo Tosato Java per elettronici ed elettrotecnici Layout GridLayout Dispone le componenti in una griglia. f.setLayout(new GridLayout(5, 3)); // griglia con 5 righe e 3 colonne f.setLayout(new GridLayout(3, 2, 10, 10)); // 10, 10 sono i pixel che separano le componenti // (spazio orizzontale, spazio verticale) Posizionamento assoluto f.setLayout(null); <componente>.setBounds(x, y, larghezza, altezza); // x,y rispetto al video; larghezza e altezza componente Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 7
  • 8. Paolo Tosato Java per elettronici ed elettrotecnici Gestione degli eventi I due aspetti principali dell’interazione con l’utente: • Riconoscere quando compie un’azione (compito affidato al sistema di gestione degli eventi) • Predisporre le operazioni da eseguire in corrispondenza delle azioni compiute dell’ utente (programmatore). Tutte le componenti sono possibili oggetti di origine, cioè che possono generare eventi. N.B.: Tutti gli eventi che non hanno un gestore vengono ignorati. Uno o più ascoltatori (listeners/gestori degli eventi) possono registrarsi nell’oggetto origine per essere avvisati della generazione di un particolare evento. Un ascoltatore è un oggetto la cui classe implementa un’interfaccia di tipo listener (java.awt.event.*) Per realizzare la gestione degli eventi si deve quindi: • Creare uno o più ascoltatori in base agli eventi da gestire • Registrare l’ascoltatore in un oggetto origine che si vuole controllare N.B.: è obbligatorio che tutti i metodi di un ascoltatore siano presenti (implementati) anche se non contengono alcuna istruzione. Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 8
  • 9. Paolo Tosato Java per elettronici ed elettrotecnici Gestione degli eventi import javax.swing.*; import java.awt.*; public class Pulsanti { public static void main(String[] args) { JFrame f = new JFrame("Pulsanti"); JPanel p = new JPanel(); JButton sup = new JButton("Superiore"); JButton inf = new JButton("Inferiore"); JTextArea a = new JTextArea(50, 10); p.setLayout(new BorderLayout()); p.add(sup, BorderLayout.NORTH); p.add(a, BorderLayout.CENTER); p.add(inf, BorderLayout.SOUTH); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); sup.addActionListener(new GestorePulsante(a)); inf.addActionListener(new GestorePulsante(a)); a.setEditable(false); f.getContentPane().add(p); f.setSize(400,300); f.setVisible(true); } } Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 9
  • 10. Paolo Tosato Java per elettronici ed elettrotecnici Gestione degli eventi import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GestorePulsante implements ActionListener { // contiene solo il metodo actionPerformed private JTextArea a; public GestorePulsante(JTextArea a) { this.a = a; } public void actionPerformed(ActionEvent e) { String pulsante = e.getActionCommand(); // restituisce la stringa con il testo mostrato // nel pulsante if (pulsante.equals("Superiore")) { a.append("E stato premuto il pulsante SUPERIOREn"); } if (pulsante.equals("Inferiore")) { a.append("E stato premuto il pulsante INFERIOREn"); } } } Quest opera è distribuita con 15/04/2013 licenza Creative Commons Attribuzione - Non commerciale - Condividi allo stesso modo 3.0 Unported. 10

×