Gestione di eventi. Anno Accademico 2003/04. Docente modulo 2: Barbara Masucci

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gestione di eventi. Anno Accademico 2003/04. Docente modulo 2: Barbara Masucci"

Transcript

1 Gestione di eventi Anno Accademico 2003/04 Docente modulo 2: Eventi Ogni volta che l utente esegue un azione un clic del mouse la pressione di un tasto sulla tastiera la modifica di una finestra la selezione di un elemento da un menu viene generato un evento

2 Gestione degli eventi Per gestire gli eventi bisogna distinguere tra Sorgente dell evento (source) la componente dell interfaccia utente che ha generato l evento Pulsanti, voci di menu, barre di scorrimento, etc. Ricevitore dell evento (listener) la classe che intercetta l evento e definisce le azioni intraprese a seguito del verificarsi di particolari eventi Package java.awt.event Ogni evento è descritto da una appropriata classe Il package java.awt.event contiene Le classi per i diversi tipi di eventi Le interfacce relative ai ricevitori di eventi, i Listener Le classi degli adattatori, gli Adapter, che implementano le interfacce Listener

3 Tipi di evento MouseEvent: eventi del mouse ActionEvent: eventi di azione AdjustmentEvent: eventi di modifica FocusEvent: eventi di selezione ItemEvent: eventi di elemento KeyEvent: eventi di tastiera WindowEvent: eventi di finestra etc Interfacce Listener Sono i ricevitori di eventi Esiste una interfaccia Listener per ciascun tipo di evento Definiscono i metodi che devono essere implementati da ogni oggetto che desidera essere informato dell accadere di un particolare tipo di evento

4 Interfacce Listener MouseListener: eventi del mouse ActionListener: eventi di azione AdjustmentListener: eventi di modifica FocusListener: eventi di selezione ItemListener: eventi di elemento KeyListener: eventi di tastiera WindowListener: eventi di finestra etc MouseEvent Si verificano in seguito ad azioni che riguardano il mouse Tali azioni possono essere eseguite dall utente in un punto qualsiasi dell interfaccia grafica Una classe deve implementare l interfaccia MouseListener per essere in grado di avvertire e gestire eventi di questo tipo

5 MouseEvent: metodi addmouselistener() associa l ascoltatore di eventi a ciascun componente in grado di generare eventi di questo tipo getx() e gety() restituiscono le coordinate del punto in cui l evento relativo al mouse è accaduto MouseListener L interfaccia MouseListener ha cinque metodi: mousepressed(mouseevent event) mousereleased(mouseevent event) mouseclicked(mouseevent event) mouseentered(mouseevent event) mouseexited(mouseevent event)

6 MouseListener public interface MouseListener void mousepressed(mouseevent event); void mousereleased(mouseevent event); void mouseclicked(mouseevent event); void mouseentered(mouseevent event); void mouseexited(mouseevent event); Spiare gli eventi del mouse Scriviamo un programma che spia gli eventi del mouse e li stampa man mano che si verificano Scriviamo una classe MouseSpy (ricevitore) che implementa MouseListener Scriviamo un applet MouseSpyApplet (sorgente degli eventi) ed installiamo il ricevitore

7 File MouseSpy.java import java.awt.event.mouseevent; import java.awt.event.mouselistener; class MouseSpy implements MouseListener public void mousepressed(mouseevent event) System.out.println ("Mouse pressed. x=" + event.getx() + " y=" + event.gety()); public void mousereleased(mouseevent event) System.out.println ("Mouse released. x=" + event.getx() + " y=" + event.gety()); public void mouseclicked(mouseevent event) System.out.println ("Mouse clicked. x=" + event.getx() + " y=" + event.gety()); public void mouseentered(mouseevent event) System.out.println ("Mouse entered. x=" + event.getx() + " y=" + event.gety());

8 public void mouseexited(mouseevent event) System.out.println ("Mouse exited. x=" + event.getx() + " y=" + event.gety()); File MouseSpyApplet.java import java.applet.applet; public class MouseSpyApplet extends Applet public MouseSpyApplet() MouseSpy listener = new MouseSpy(); addmouselistener(listener);

9 Spiare gli eventi del mouse Elaborare gli eventi del mouse Scriviamo un programma che disegna un rettangolo sullo schermo in seguito alla pressione di un tasto del mouse, sposta l angolo superiore sinistro nella posizione del puntatore del mouse

10 File MouseApplet.java import java.applet.applet; import java.awt.graphics; import java.awt.graphics2d; import java.awt.rectangle; import java.awt.event.mouselistener; import java.awt.event.mouseevent; public class MouseApplet extends Applet public MouseApplet() // il rettangolo disegnato dal metodo paint box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT); class MousePressListener implements MouseListener public void mousepressed(mouseevent event) int x = event.getx(); int y = event.gety(); box.setlocation(x, y); repaint(); public void mousereleased(mouseevent event) public void mouseclicked(mouseevent event) public void mouseentered(mouseevent event) public void mouseexited(mouseevent event) MouseListener listener = new MousePressListener(); addmouselistener(listener);

11 public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; g2.draw(box); private Rectangle box; private static final int BOX_X = 100; private static final int BOX_Y = 100; private static final int BOX_WIDTH = 20; private static final int BOX_HEIGHT = 30; MouseApplet Il ricevitore listener è definito come classe interna della classe MouseApplet mousepressed può accedere alla variabile istanza box definita nel costruttore In seguito ad una pressione del mouse viene chiamato il metodo setlocation(x,y) sul rettangolo box L oggetto che memorizza il rettangolo viene aggiornato Per visualizzare la nuova posizione dobbiamo ridisegnare lo schermo con repaint()

12 Esecuzione di MouseApplet Adattatori di eventi Nella classe MousePressListener eravamo interessati solo alla pressione dei tasti del mouse ma abbiamo dovuto riscrivere tutti I metodi di MouseListener! Possiamo usare la classe MouseAdapter, che implementa tutti i metodi di MouseListener come metodi vuoti sovrascriviamo solo i metodi che ci interessano!

13 Adattatori di eventi class MousePressListener extends MouseAdapter public void mousepressed(mouseevent event) int x = event.getx(); int y = event.gety(); box.setlocation(x,y); repaint(); ActionEvent Si verificano quando l utente compie un azione utilizzando uno dei componenti dell interfaccia utente Una classe deve implementare l interfaccia ActionListener per essere in grado di avvertire e gestire eventi di questo tipo

14 ActionEvent: metodi addactionlistener() associa l ascoltatore di eventi a ciascun componente in grado di generare eventi di questo tipo getsource() determina il componente che ha provocato l evento ActionListener L interfaccia ActionListener ha un solo metodo: actionperformed(actionevent event) public interface ActionListener void actionperformed(actionevent event); Non ha senso avere un adattatore di eventi per ActionListener

15 Interfaccia utente In Java esistono due modi per gestirla: Swing (package javax.swing) Estensione delle prime versioni di Java, componente standard di Java 2 Esempi di classi: JTextField, JLabel, JButton, JRadioButton, JCheckbox, JFrame, JPanel, JScrollPane, Abstract Windowing Toolkit (package java.awt) Ormai obsoleto Esempi di classi: TextField, Label, Button, RadioButton, ChechBox, Frame, Panel, ScrollBar, Interfaccia utente Tre elementi fondamentali Componenti: elementi di base dell interfaccia Contenitori: elementi che contengono componenti Gestori del Layout: elementi che controllano la disposizione delle componenti all interno di un contenitore

16 Componenti Etichette Caselle di testo Aree di testo Barre di scorrimento Bottoni Bottoni radio Caselle di controllo Caselle combinate Etichette I più semplici elementi di un interfaccia utente Stringhe di testo impiegate per identificare la funzione di altre componenti aggiungere spiegazioni destinate all utente Per creare un etichetta si usa la classe JLabel JLabel xlabel = new JLabel ( x= );

17 Caselle di testo Aree in cui l utente può digitare del testo Bisogna specificare la dimensione della casella di testo Per creare una casella di testo si usa la classe JTextField JTextField xfield = new JTextField(5); Aree di testo Aree in cui l utente può digitare del testo su più righe Per creare un area di testo si usa la classe JTextArea JTextArea textarea = new JTextArea(10,30);

18 Aree di testo Alcuni metodi append aggiunge testo alla fine dell area di testo settext imposta il testo gettext legge il contenuto dell area seteditable(false) impedisce la modifica dell area setfont imposta il font Barre di scorrimento Possono essere aggiunte ad un area di testo Per creare una barra di scorrimento si usa la classe JScrollPane JTextArea textarea = new JTextArea(10,30); JScrollPane scrollpane = new JScrollPane(textArea);

19 Bottoni Pulsanti dell interfaccia che reagiscono al clic del mouse Per creare un bottone si usa la classe JButton JButton movebutton = new JButton( Move ); JButton movebutton = new JButton(new ImageIcon( hand.gif )); JButton movebutton = new JButton( Move,new ImageIcon( hand.gif )); Bottoni Quando un bottone viene premuto, invia un evento di azione Per riceverlo, è necessario installare un ricevitore di azioni (classe che implementa l interfaccia ActionListener) class MoveButtonListener implements ActionListener public void actionperformed(actionevent event) ActionListener listener = new MoveButtonListener(); movebutton.addactionlistener(listener);

20 Bottoni radio Consentono all utente di fare una sola scelta tra più opzioni Bottoni radio Per creare bottoni radio si usa la classe JRadioButton JRadioButton paperbutton = new JRadioButton( Paperino ); JRadioButton pippobutton = new JRadioButton( Pippo ); Poi si crea un oggetto di tipo ButtonGroup e si aggiungono i singoli pulsanti ButtonGroup fumettigroup = new ButtonGroup(); fumettigroup.add(paperbutton); fumettigroup.add(pippobutton);

21 Bottoni radio Alcuni metodi isselected() stabilisce se un pulsante è selezionato setselected(true) imposta la selezione per uno dei pulsanti del gruppo Bottoni radio Quando un bottone radio viene selezionato, invia un evento di azione Per riceverlo, è necessario installare un ricevitore di azioni (classe che implementa l interfaccia ActionListener) class RadioButtonListener implements ActionListener public void actionperformed(actionevent event) ActionListener listener = new RadioButtonListener(); paperbutton.addactionlistener(listener);

22 Caselle di controllo Consentono all utente di fare varie scelte che non si escludono a vicenda Caselle di controllo Per creare una casella di controllo si usa la classe JCheckbox JCheckBox papercheckbox = new JCheckBox( Paperino ); Non è necessario creare un gruppo di pulsanti, come per i bottoni radio

23 Caselle di controllo Quando una casella di controllo viene selezionata, invia un evento di azione Per riceverlo, è necessario installare un ricevitore di azioni (classe che implementa l interfaccia ActionListener) class CheckBoxListener implements ActionListener public void actionperformed(actionevent event) ActionListener listener = new CheckBoxListener(); papercheckbox.addactionlistener(listener); Caselle combinate Consentono all utente di fare una sola scelta tra più opzioni attraverso un elenco a discesa

24 Caselle combinate Per creare una casella combinata si usa la classe JComboBox JComboBox fumetticombo = new JComboBox(); Poi si aggiungono le voci con il metodo additem fumetticombo.additem( Paperino ); fumetticombo.additem( Pippo ); fumetticombo.additem( Pluto ); fumetticombo.additem( Topolino ); Caselle combinate Alcuni metodi seteditable() rende la casella modificabile getselecteditem() restituisce l elemento (di tipo Object) scelto dall utente setselecteditem() imposta la voce iniziale da visualizzare nella casella

25 Caselle combinate Quando una casella combinata viene selezionata, invia un evento di azione Per riceverlo, è necessario installare un ricevitore di azioni (classe che implementa l interfaccia ActionListener) class ComboBoxListener implements ActionListener public void actionperformed(actionevent event) ActionListener listener = new ComboBoxListener(); fumetticombo.addactionlistener(listener); Interfaccia utente Tre elementi fondamentali Componenti: elementi di base dell interfaccia Contenitori: elementi che contengono componenti Gestori del Layout: elementi che controllano la disposizione delle componenti all interno di un contenitore

26 Contenitori Negli applet visti finora l esecuzione avveniva all interno della finestra del browser Per creare una maggiore interazione con l utente è possibile creare diversi contenitori per i componenti dell interfaccia utente panelli finestre menu Pannelli Contenitori per i componenti dell interfaccia utente Per creare un pannello si usa la classe JPanel JPanel panel = new JPanel(); Dopo aver creato il pannello, si aggiungono i componenti mediante il metodo add Panel.add(xLabel); Panel.add(xField); Panel.add(yLabel); Panel.add(yField); Panel.add(moveButton);

27 Frame Un frame è una finestra indipendente dotata di barra del titolo pulsanti di ridimensionamento e chiusura Per creare un frame si usa la classe JFrame JFrame frame = new JFrame(); Frame

28 Frame Il metodo pack() assegna le dimensioni al frame in modo che possa contenere tutti i suoi componenti frame.pack(); Il metodo show() mostra la finestra sullo schermo (inizialmente è invisibile) frame.show(); Barra dei menu Una barra dei menu è costituita da un gruppo di menu lungo il margine superiore di una finestra

29 Barra dei menu Per creare una barra dei menu si usa la classe JMenuBar JMenuBar menubar = new JMenuBar(); La barra dei menu deve essere associata a un oggetto di tipo Frame con il metodo setjmenubar() setjmenubar(menubar); Menu Per creare un menu si usa la classe Menu JMenu filemenu = new JMenu( File ); I menu vengono aggiunti alla barra dei menu mediante il metodo add() menubar.add(filemenu);

30 Menu All interno dei menu si aggiungono le voci di menu Per creare una voce di menu si usa la classe JMenuItem JMenuItem filenewmenuitem = new JMenuItem( New ); filemenu.add(filenewmenuitem); Menu Quando una voce di menu viene selezionata, invia un evento di azione Per riceverlo, è necessario installare un ricevitore di azioni (classe che implementa l interfaccia ActionListener) class MenuItemListener implements ActionListener public void actionperformed(actionevent event) ActionListener listener = new menuitemlistener(); filenewmenuitem.addactionlistener(listener);

31 Interfaccia utente Tre elementi fondamentali Componenti: elementi di base dell interfaccia Contenitori: elementi che contengono componenti Gestori del Layout: elementi che controllano la disposizione delle componenti all interno di un contenitore Gestori di layout Determinano la disposizione (layout) delle componenti all interno di un contenitore Alcuni gestori comunemente usati: FlowLayout (a scorrimento) Borderlayout (a bordi) GridLayout (a griglia) GridBagLayout

32 Gestori di layout Bisogna innanzitutto creare un contenitore Poi si utilizza il metodo setlayout() per definire un gestore di layout In seguito si aggiungono i componenti al contenitore con il metodo add() FlowLayout Gestore di default Posiziona le componenti da sinistra verso destra finchè c è spazio e poi procede alla riga successiva

33 FlowLayout BorderLayout Suddivide un contenitore in cinque settori Alto (NORTH) Basso (SOUTH) Sinistra (WEST) Destra (EAST) Centro (CENTER) I settori relativi ai bordi occupano lo spazio di cui hanno bisogno, e tutto lo spazio restante viene usato dal settore centrale

34 BorderLayout BorderLayout Impostiamo il gestore in un pannello: panel.setlayout(new BorderLayout()); Aggiungiamo un componente al contenitore, specificandone la posizione: panel.add(label, BorderLayout.CENTER);

35 BorderLayout Possiamo usare il pannello dei contenuti predefinito di un frame, ottenuto dal metodo getcontentpane(): frame.getcontentpane().add(label, BorderLayout.CENTER); GridLayout Dispone i componenti in base ad una griglia con un certo numero di righe e colonne L aggiunta dei componenti avviene a partire dalla riga superiore, da sinistra a destra La dimensione delle componenti cambia in seguito a ridimensionamenti del contenitore

36 GridLayout GridLayout Impostiamo il gestore in un pannello: panel.setlayout(new GridLayout(4,3)); Aggiungiamo i componenti al contenitore: panel.add(button7); panel.add(button8); panel.add(button9); panel.add(button4);

37 GridBagLayout Consente la creazione di griglie avanzate le proporzioni tra righe e colonne all interno della griglia non sono necessariamente uguali i componenti possono essere disposti in modo arbitrario e occupare più celle Noi non lo utilizzeremo E adesso? Dopo aver descritto i componenti dell interfaccia utente, vogliamo gestire gli eventi di azione Una classe deve implementare l interfaccia ActionListener per essere in grado di avvertire e gestire eventi di questo tipo

38 Esempio Scriviamo un applet che consente all utente di muovere un rettangolo specificando le coordinate dell angolo superiore sinistro File ButtonApplet.java import java.applet.applet; import java.awt.graphics; import java.awt.graphics2d; import java.awt.rectangle; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jtextfield; /** Questo applet consente all utente di muovere un rettangolo specificando le coordinate dell angolo superiore sinistro */

39 public class ButtonApplet extends Applet public ButtonApplet() // il rettangolo disegnato dal metodo paint box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT); // i campi di testo per inserire le coordinate final JTextField xfield = new JTextField(5); final JTextField yfield = new JTextField(5);; // il bottone per muovere il rettangolo JButton movebutton = new JButton("Move", new ImageIcon("hand.gif")); class MoveButtonListener implements ActionListener public void actionperformed(actionevent event) int x = Integer.parseInt(xField.getText()); int y = Integer.parseInt(yField.getText()); box.setlocation(x, y); repaint(); ActionListener listener = new MoveButtonListener(); movebutton.addactionlistener(listener);

40 // le etichette per i campi di testo JLabel xlabel = new JLabel("x = "); JLabel ylabel = new JLabel("y = "); // il pannello che contiene i componenti JPanel panel = new JPanel(); panel.add(xlabel); panel.add(xfield); panel.add(ylabel); panel.add(yfield); panel.add(movebutton); // il frame che contiene il pannello JFrame frame = new JFrame(); frame.setcontentpane(panel); frame.pack(); frame.show(); public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; g2.draw(box); private Rectangle box; private static final int BOX_X = 100; private static final int BOX_Y = 100; private static final int BOX_WIDTH = 20; private static final int BOX_HEIGHT = 30;

41 Più pulsanti con comportamento simile JButton leftbutton = new JButton( Left ); class LeftButtonListener implements ActionListener public void actionperformed(actionevent event) box.translate(-box_width, 0); repaint(); LeftButtonListener leftlistener = new LeftButtonListener(); leftbutton.addactionlistener(leftlistener); Più pulsanti con comportamento simile JButton rightbutton = new JButton( Right ); class RightButtonListener implements ActionListener public void actionperformed(actionevent event) box.translate(box_width, 0); repaint(); RightButtonListener rightlistener = new RightButtonListener(); rightbutton.addactionlistener(rightlistener);

42 Più pulsanti con comportamento simile Evitiamo di scrivere codice ripetitivo per pulsanti con lo stesso comportamento! Rimedio: isoliamo il codice comune e scriviamo un nuovo metodo makebutton Ad ogni invocazione del metodo viene creato un bottone e un oggetto ricevitore di tipo ButtonListener Più pulsanti con comportamento simile public JButton makebutton(string label, final int dx, final int dy) JButton button = new JButton(label); class ButtonListener implements ActionListener public void actionperformed(actionevent event) box.translate(dx, dy); repaint(); ButtonListener listener = new ButtonListener(); button.addactionlistener(listener); return button;

43 Più pulsanti con comportamento simile Invochiamo il metodo quattro volte: panel.add(makebutton("left",-box_width,0)); panel.add(makebutton("right",box_width,0)); panel.add(makebutton("up",0,-box_height)); panel.add(makebutton("down",0,box_height)); File ButtonApplet.java import java.applet.applet; import java.awt.graphics; import java.awt.graphics2d; import java.awt.rectangle; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jpanel; /** Questo applet permette all utente di spostare un rettangolo premendo quattro pulsanti con etichette "Left", "Right", "Up", and "Down". */

44 public class ButtonApplet extends Applet public ButtonApplet() // il rettangolo disegnato dal metodo paint box = new Rectangle(BOX_X, BOX_Y, BOX_WIDTH, BOX_HEIGHT); // il pannello che contiene i componenti JPanel panel = new JPanel(); panel.add(makebutton("left", -BOX_WIDTH, 0)); panel.add(makebutton("right", BOX_WIDTH, 0)); panel.add(makebutton("up", 0, -BOX_HEIGHT)); panel.add(makebutton("down", 0, BOX_HEIGHT)); // il frame che contiene il pannello JFrame frame = new JFrame(); frame.setcontentpane(panel); frame.pack(); frame.show(); public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; g2.draw(box); /** Costruisce un pulsante che muove il label l etichetta del dx l entità dello spostamento in direzione x quando si preme il dy l entità dello spostamento in direzione y quando si preme il il pulsante */

45 public JButton makebutton(string label, final int dx, final int dy) JButton button = new JButton(label); class ButtonListener implements ActionListener public void actionperformed(actionevent event) box.translate(dx, dy); repaint(); ButtonListener listener = new ButtonListener(); button.addactionlistener(listener); return button; private Rectangle box; private static final int BOX_X = 100; private static final int BOX_Y = 100; private static final int BOX_WIDTH = 20; private static final int BOX_HEIGHT = 30;

46 Esempio Scriviamo un applet che consente all utente di scegliere un solo colore tra rosa, blu, verde, nero e scrive Ciao nel colore prescelto File RadioButtonApplet.java import java.applet.applet; import java.awt.graphics; import java.awt.color; import java.awt.font; import java.awt.graphics2d; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.buttongroup; import javax.swing.jradiobutton;

47 public class RadioButtonApplet extends Applet public RadioButtonApplet() //i bottoni radio per i colori final JRadioButton pinkbutton = new JRadioButton("Pink"); final JRadioButton blackbutton = new JRadioButton("Black"); final JRadioButton bluebutton = new JRadioButton("Blue"); final JRadioButton greenbutton = new JRadioButton("Green"); blackbutton.setselected(true); ButtonGroup group = new ButtonGroup(); group.add(pinkbutton); group.add(bluebutton); group.add(greenbutton); group.add(blackbutton); //il pannello che contiene i bottoni JPanel panel = new JPanel(); panel.add(pinkbutton); panel.add(bluebutton); panel.add(greenbutton); panel.add(blackbutton); // il frame che contiene il pannello JFrame frame = new JFrame(); frame.setcontentpane(panel); frame.pack(); frame.show();

48 class RadioButtonListener implements ActionListener public void actionperformed(actionevent event) if (greenbutton.isselected()) color = Color.green; else if (pinkbutton.isselected()) color = Color.pink; else if (bluebutton.isselected()) color = Color.blue; else color=color.black; repaint(); ActionListener listener = new RadioButtonListener(); greenbutton.addactionlistener(listener); pinkbutton.addactionlistener(listener); bluebutton.addactionlistener(listener); blackbutton.addactionlistener(listener); public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; Font huge = new Font("Helvetica", Font.BOLD, 36); g2.setfont(huge); g2.setcolor(color); g2.drawstring("ciao", 50, 100); private Color color;

49 Esempio Scriviamo un applet che consente all utente di scegliere uno stile tra italic e bold e scrive Ciao nello stile prescelto File CheckBoxApplet.java import java.applet.applet; import java.awt.graphics; import java.awt.color; import java.awt.font; import java.awt.graphics2d; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jcheckbox;

50 public class CheckBoxApplet extends Applet public CheckBoxApplet() style = Font.PLAIN; //le caselle di controllo per gli stili final JCheckBox boldbox = new JCheckBox("Bold"); final JCheckBox italicbox = new JCheckBox("Italic"); //il pannello che contiene le caselle di controllo JPanel panel = new JPanel(); panel.add(boldbox); panel.add(italicbox); //il frame che contiene il pannello JFrame frame = new JFrame(); frame.setcontentpane(panel); frame.pack(); frame.show(); class CheckBoxListener implements ActionListener public void actionperformed(actionevent event) if (boldbox.isselected()) style = style + Font.BOLD; if (italicbox.isselected()) style = style + Font.ITALIC; repaint(); ActionListener listener = new CheckBoxListener(); boldbox.addactionlistener(listener); italicbox.addactionlistener(listener);

51 public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; Font huge = new Font("Helvetica", style, 36); g2.setfont(huge); g2.drawstring("ciao", 50, 100); private int style; Esempio Scriviamo un applet che consente all utente di scegliere il nome di un font da un elenco a discesa e scrive Ciao con il font prescelto

52 File ComboBoxApplet.java import java.applet.applet; import java.awt.graphics; import java.awt.color; import java.awt.font; import java.awt.graphics2d; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jcombobox; import javax.swing.jframe; import javax.swing.jpanel; public class ComboBoxApplet extends Applet public ComboBoxApplet() chosen= Serif ; // le caselle combinate final JComboBox namefont = new JComboBox(); namefont.additem("serif"); namefont.additem("sansserif"); namefont.additem("monospaced"); //il pannello JPanel panel = new JPanel(); panel.add(namefont); // il frame JFrame frame = new JFrame(); frame.setcontentpane(panel); frame.pack(); frame.show();

53 class ComboBoxListener implements ActionListener public void actionperformed(actionevent event) chosen = (String)namefont.getSelectedItem(); repaint(); ActionListener listener = new ComboBoxListener(); namefont.addactionlistener(listener); public void paint(graphics g) Graphics2D g2 = (Graphics2D)g; Font huge = new Font(chosen, Font.BOLD, 36); g2.setfont(huge); g2.drawstring("ciao", 50, 100); private String chosen;

54 Esercizi da svolgere P9.3 P

Gestione di eventi ed interfacce utente grafiche

Gestione di eventi ed interfacce utente grafiche Gestione di eventi ed interfacce utente grafiche Eventi Ogni volta che l utente esegue un azione un clic del mouse la pressione di un tasto sulla tastiera la modifica di una finestra la selezione di un

Dettagli

Gestione degli eventi

Gestione degli eventi Gestione degli eventi Input di un programma Da console gestito rigidamente da programma Sequenza di input definita dal programma Con interfaccia grafica Utente ha più libertà Sequenza di input in qualsiasi

Dettagli

Eventi e listener per i componenti grafici

Eventi e listener per i componenti grafici Eventi e listener per i componenti grafici Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Eventi e listener Eventi e listener (ascoltatori) sono

Dettagli

Applicazioni grafiche

Applicazioni grafiche Applicazioni grafiche Finestre Frame I programmi grafici scritti finora erano applet Possiamo anche scrivere applicazioni grafiche Costituite da varie finestre frame Creiamo il frame all interno del metodo

Dettagli

Appendice B:Interfacce Grafiche

Appendice B:Interfacce Grafiche Appendice B:Interfacce Grafiche Per usare tali funzioni bisogna importare le librerie: import javax.swing.*; import java.awt.*; B.1 JFrame Creazione ci un interfaccia. JFrame = new JFrame( Prima finestra

Dettagli

Esercizi. Esercizio P9.16. File ExP9_16.java. Anno Accademico 2003/04. Docente modulo 2: Barbara Masucci

Esercizi. Esercizio P9.16. File ExP9_16.java. Anno Accademico 2003/04. Docente modulo 2: Barbara Masucci Esercizio P9.16 Esercizi Scrivere un applicazione grafica che funga da interfaccia per la classe BankAccount. Fornite campi di testo e pulsanti per versare e prelevare denaro e per visualizzare il saldo

Dettagli

Programmazione ad Eventi

Programmazione ad Eventi Programmazione ad Eventi Eventi, Sorgenti, e Listeners Una interfaccia utente deve gestire una moltitudine di eventi eventi da tastiera, del mouse, click su pulsanti, Opportuno poter discriminare diversi

Dettagli

Lezione n.12 LPR Informatica Applicata GUI programming

Lezione n.12 LPR Informatica Applicata GUI programming Università degli Studi di Pisa Lezione n.12 LPR Informatica Applicata GUI programming 19/05/2008 Laura Ricci UNA SEMPLICE INTERFACCIA PER INSTANT MESSAGING JAVA GUI: COMPONENTI BASE import java.awt.*;

Dettagli

Programmazione ad Eventi

Programmazione ad Eventi Programmazione ad Eventi Eventi, Sorgenti, e Listeners Una interfaccia utente deve gestire una moltitudine di eventi eventi da tastiera, del mouse, click su pulsanti, Opportuno poter discriminare diversi

Dettagli

Java SE 6. Programmazione grafica (3)

Java SE 6. Programmazione grafica (3) Java SE 6 Programmazione grafica (3) diegozabot@yahoo.it ursula.castaldo@gmail.com Event Listeners (1) Se vogliamo che una classe risponda a degli eventi utente, deve implementare l'interfaccia che si

Dettagli

Controllo del layout. Per disporre in modo più strutturato utilizziamo pannelli con diverse politiche di disposizione (layout)

Controllo del layout. Per disporre in modo più strutturato utilizziamo pannelli con diverse politiche di disposizione (layout) Controllo del layout Ovvero, controllo della disposizione dei componenti all interno di una finestra Abbiamo visto applicazioni con una disposizione di componenti elementare I pannelli che abbiamo utilizzato

Dettagli

La nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output:

La nostra finestra dovrebbe essere come mostra la figura: Diamo innanzitutto un occhiata alle componenti principali di input/output: Esercitazione N4: Costruzione di una applicazione GUI utilizzando i componenti di base per realizzare l input e l output e cioè Label, TextBox, TextArea Button e Panel (Pannelli) I componenti che utilizzeromo

Dettagli

interfacce ed eventi intercettare il mouse ed altri eventi

interfacce ed eventi intercettare il mouse ed altri eventi interfacce ed eventi intercettare il mouse ed altri eventi interfacce: premessa il termine "interfaccia" occorre in Java con due significati, collegati ma distinti 1. interface, parola chiave di Java e

Dettagli

L Abstract Windowing Toolkit. Le GUI in Java. Il Frame. Cenni sull ereditarietà. Gianpaolo Cugola - Sistemi Informativi in Rete

L Abstract Windowing Toolkit. Le GUI in Java. Il Frame. Cenni sull ereditarietà. Gianpaolo Cugola - Sistemi Informativi in Rete Le GUI in Java L Abstract Windowing Toolkit Fino ad ora abbiamo usato le classi del pacchetto JavaBook per realizzare semplici interfacce grafiche (GUI) Si tratta di classi facili da usare...... ma che

Dettagli

Java terzo contatto. Swing Java

Java terzo contatto. Swing Java Java terzo contatto Swing Java 1 Introduzione Componenti grafici di Java (Swing) Utilizzo di alcuni dei metodi per creare semplici finestre grafiche Accesso ai JavaDoc per usare meglio gli oggetti già

Dettagli

L interfaccia grafica con Java

L interfaccia grafica con Java L interfaccia grafica con Java 1/24 L interfaccia utente serve per la comunicazione tra utente e programma Distinguiamo le interfacce tra quelle a caratteri e quelle grafiche Le GUI (Graphical user interface)

Dettagli

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE La Gestione degli Eventi Ogni oggetto grafico è predisposto ad essere sollecitato in qualche modo dall utente (per esempio un pulsante può essere premuto).

Dettagli

Unità B2 Gestione eventi 2

Unità B2 Gestione eventi 2 (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: MouseListener MouseAdapter TextListener KeyListener KeyAdapter ItemListener getkeycode() getkeychar() (B) CONOSCENZA E COMPETENZA

Dettagli

A. Ferrari. AWT e Swing. Java. Alberto Ferrari Informatica

A. Ferrari. AWT e Swing. Java. Alberto Ferrari Informatica AWT e Swing Java Alberto Ferrari Informatica AWT o Abstract Window Toolkit (AWT) è la libreria Java contenente le classi e le interfacce fondamentali per la creazione di elementi grafici o è stata inserita

Dettagli

Interfacce. Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato

Interfacce. Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato Interfacce 1 Interfacce Un interfaccia Java è una collezione di metodi astratti (e di costanti) Un metodo astratto è un metodo non implementato costituito dall intestazione senza il corpo della definizione

Dettagli

Applicazioni grafiche e finestre

Applicazioni grafiche e finestre Applicazioni grafiche e finestre / SampleFrame.java package sampleswingjavaapp; import java.awt.flowlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton;

Dettagli

I Layout Manager di java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

I Layout Manager di java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni I Layout Manager di java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Creazione di interfacce complesse con i layout manager La posizione di un componente aggiunto

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA5 B2 Gestione eventi (2) 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Continuiamo la

Dettagli

GUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali

GUI e java swing. Elmenti della GUI. Eventi e listener contenitori componenti layout manager. caratteristiche speciali GUI e java swing Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2005-06 CdL Operatore Informatico Giuridico. Elmenti della GUI Eventi e listener contenitori componenti layout manager caratteristiche

Dettagli

Linguaggi di Programmazione II Matricole con le due ultime cifre dispari

Linguaggi di Programmazione II Matricole con le due ultime cifre dispari Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione 1 2 3 4 5 6 totale /5 /10 /10 /30 /25 /20 /100 Non usare altri fogli, usare solo lo spazio sottostante. Fogli differenti da questo

Dettagli

Eventi di azione. // con interfaccia per eventi di azione

Eventi di azione. // con interfaccia per eventi di azione Eventi di azione (Interfaces ActionListener, Classes ActionEvent) Sono generati quando si premono bottoni, si selezionano voci di menù, si preme invio mentre si scrive in un campo di testo. In awt sono

Dettagli

Grafica ed eventi. Più movimento alle classi

Grafica ed eventi. Più movimento alle classi Grafica ed eventi Più movimento alle classi 1 ActionListener Listener: è una classe che implementa ActionListener e definisce actionperformed( ) Per aggiungere un ActionListener ad un oggetto c c.addactionlistener(listener);

Dettagli

Gestione dell interattività: gli eventi

Gestione dell interattività: gli eventi Gestione dell interattività: gli eventi Gli eventi sono una modalità di comunicazione tra l utente (sistema) e il programma in esecuzione. Tipi di eventi: Input da parte dell utente: pressione del(i) bottone(i)

Dettagli

Sviluppo di Interfacce Grafiche in Java

Sviluppo di Interfacce Grafiche in Java Sviluppo di Interfacce Grafiche in Java Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.

Dettagli

Alessandro De Luca. Lezione, 13 maggio 2015

Alessandro De Luca. Lezione, 13 maggio 2015 Basi Basi di di dati dati ee sistemi sistemi informativi informativi II mod.laboratorio mod.laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, Introduzione a Java Swing

Dettagli

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06 Raffaella Brighi, a.a. 2005/06 Eventi e listener Corso di Laboratorio II. A.A. 2005-06 Eventi e listener Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente o del sistema(es

Dettagli

Java GUI. Swing Java

Java GUI. Swing Java Java GUI Swing Java 1 Introduzione n Componenti grafici di Java (Swing) Utilizzo di alcuni dei metodi per creare semplici finestre grafiche Accesso ai JavaDoc per usare meglio gli oggetti già pronti n

Dettagli

Capitolo 9 Interfacce e polimorfismo

Capitolo 9 Interfacce e polimorfismo Capitolo 9 Interfacce e polimorfismo Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Conoscere le interfacce Saper effettuare conversioni tra riferimenti

Dettagli

JFrame. Chiusura della finestra. JFrame - Esempio. Tipologia di GUI. Linee guida. Programmazione ad Oggetti 6/12/09. finestre

JFrame. Chiusura della finestra. JFrame - Esempio. Tipologia di GUI. Linee guida. Programmazione ad Oggetti 6/12/09. finestre JFrame JFrame è la classe di base per le finestre Programmazione ad Oggetti Interfacce grafiche Fornisce tutte le caratteristiche di una finestra vuota Barra del titolo Pulsanti standard Bordo ridimensionabile

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 3 Cosa faremo oggi 2 Interfaccia grafica e SWING Lettura e scrittura di Files di properties Internazionalizzazione

Dettagli

Programmazione ad Oggetti. JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota

Programmazione ad Oggetti. JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota Programmazione ad Oggetti Interfacce grafiche V 1.2 Marco Torchiano 2005 JFrame JFrame è la classe di base per le finestre Fornisce tutte le caratteristiche di una finestra vuota Barra del titolo Pulsanti

Dettagli

Interazioni col mondo: eventi

Interazioni col mondo: eventi Interazioni col mondo: eventi Le interazioni di una GUI con il mondo esterno sono segnalate tramite eventi: click del mouse, inserimento di testo, selezione/attivazione... Gli eventi che memorizzano queste

Dettagli

APPLICAZIONI & APPLET

APPLICAZIONI & APPLET APPLICAZIONI & APPLET Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet Porta dinamicità alle pagine HTML "statiche" Viene eseguita dal browser,

Dettagli

Programmazione in rete e laboratorio

Programmazione in rete e laboratorio Programmazione in rete e laboratorio JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java fornisce

Dettagli

Swing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt

Swing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt Swing Swing 1 Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt il primo package grafico (Java 1.0) indipendente dalla piattaforma... o quasi! Package javax.swing

Dettagli

Riassunto. GUI in Java con l AWT 1. Cos è una GUI. Oggi: GUI in Java, l AWT. GUI in Java. Un esempio. Stefano Mizzaro 1

Riassunto. GUI in Java con l AWT 1. Cos è una GUI. Oggi: GUI in Java, l AWT. GUI in Java. Un esempio. Stefano Mizzaro 1 Riassunto GUI in Java con l AWT 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 23 15 febbraio

Dettagli

Paradigmi di programmazione (sperimentazioni)

Paradigmi di programmazione (sperimentazioni) Paradigmi di programmazione (sperimentazioni) 2000-01 JAVA Alberto Martelli Programmazione grafica PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI

Dettagli

Prof. Pagani Corrado ESERCITAZIONI JAVA

Prof. Pagani Corrado ESERCITAZIONI JAVA Prof. Pagani Corrado ESERCITAZIONI JAVA PRIMA APPLICAZIONE CONSOLE Eseguire somma e media tra tre numeri ES 1 CODICE Non programmo sfruttando il paradigma ad oggetti (ho solo il metodo main che è static

Dettagli

Interfacce vs Inner Classes

Interfacce vs Inner Classes Interfacce vs Inner Classes Classi interne nelle loro diverse forme locali Interne statiche Utilizzo congiunto con interfacce Gestione di eventi Implementazione di iteratori Classi locali Classi che hanno

Dettagli

Pag. 1 di 5. private Color C0 = new Color(255, 0, 0);

Pag. 1 di 5. private Color C0 = new Color(255, 0, 0); Un manuale è formato da 250 pagine, In 210 di essi sono presenti 40 righe di testo, mentre nelle restanti solo 36. Determinare il numero complessivo di righe di testo del manuale. Risolvere il problema

Dettagli

Gestione degli eventi in Java

Gestione degli eventi in Java Gestione degli eventi in Java package java.awt.event.* Il modello degli eventi I componenti dell awt generano eventi in seguito alle azioni dell utente movimento del mouse click pressione di un tasto etc.

Dettagli

L interfaccia grafica in Java

L interfaccia grafica in Java L interfaccia grafica in Java Java possiede due package per la creazione di interfacce grafiche java.awt javax.swing AWT (Abstract Widget Toolkit) presente già in Java 1.0, migliorato in Java 1.1. Invariato

Dettagli

Programmazione in rete e laboratorio

Programmazione in rete e laboratorio Programmazione in rete e laboratorio 2001-02 JAVA Alberto Martelli PROGRAMMAZIONE GRAFICA Molti programmi interagiscono con l utente attraverso una interfaccia grafica GUI - Graphical User Interface Java

Dettagli

Application VS Applet

Application VS Applet Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 20 - Java Applet 1 Application

Dettagli

GUI e AWT 12/05/2003. z GUI. z GUI in Java: l AWT. z Esempi. z Principi alla base. z Da fare e da non fare. Stefano Mizzaro - GUI e AWT 2/37

GUI e AWT 12/05/2003. z GUI. z GUI in Java: l AWT. z Esempi. z Principi alla base. z Da fare e da non fare. Stefano Mizzaro - GUI e AWT 2/37 Scaletta *8,H$:7 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/~mizzaro mizzaro@dimi.uniud.it 12 maggio 2003 z GUI z GUI in Java: l AWT z Esempi

Dettagli

Grafica swing in Java

Grafica swing in Java Grafica swing in Java JFrame Costruttori public JFrame() Crea un nuovo Frame inizialmente invisibile public JFrame(Stringtitle) Crea un nuovo frame, inizialmente invisibile, con un testo specificato. Metodi

Dettagli

Interfacce grafiche utente

Interfacce grafiche utente Interfacce grafiche utente Ereditarietà per personalizzare i frame Usare l ereditarietà per scomporre fames complessi in unità facilmente comprensibili Progettare sottoclassi di JFrame Memorizzare le componenti

Dettagli

Introduzione al package grafico Swing

Introduzione al package grafico Swing Introduzione al package grafico Swing Architettura di javax.swing Java supporta direttamente nella propria architettura il concetto di applicazione grafica, tramite il package javax.swing, in cui i componenti

Dettagli

Riassunto. GUI in Java con l AWT 1. Oggi: GUI in Java, l AWT. Oggi. GUI in Java. Cos è una GUI. Stefano Mizzaro 1

Riassunto. GUI in Java con l AWT 1. Oggi: GUI in Java, l AWT. Oggi. GUI in Java. Cos è una GUI. Stefano Mizzaro 1 Riassunto GUI in Java con l AWT 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 20 20 novembre

Dettagli

Esercitazione n 6. Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java:

Esercitazione n 6. Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java: Esercitazione n 6 Capacità di analisi e di estensione di progetti Componenti grafici e gestione di eventi Linguaggio Java: il package javax.swing (JFrame, JPanel, JButton, ) java.util.eventobject e sue

Dettagli

Gerarchie di Tipi. Gerarchie di tipi. Ogni classe può. I due meccanismi si possono combinare

Gerarchie di Tipi. Gerarchie di tipi. Ogni classe può. I due meccanismi si possono combinare Gerarchie di Tipi Metodologie di progetto basate su estensione e composizione di classi e interfacce progetto di interfacce grafiche Gerarchie di tipi Ogni classe può implementare più interfacce estendere

Dettagli

Riassunto. GUI in Java con l AWT 2

Riassunto. GUI in Java con l AWT 2 Riassunto GUI in Java con l AWT 2 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 23 GUI in

Dettagli

ESERCITAZIONE 6. inserire articoli (e relativo prezzo), sia in lire che in euro. avere sempre sott'occhio il totale, sia in lire che in

ESERCITAZIONE 6. inserire articoli (e relativo prezzo), sia in lire che in euro. avere sempre sott'occhio il totale, sia in lire che in ESERCITAZIONE 6 1 - Predisporre una maschera di input che consenta all'utente di : inserire articoli (e relativo prezzo), sia in lire che in euro avere sempre sott'occhio il totale, sia in lire che in

Dettagli

In alcune applicazioni è necessario mostrare le informazioni in formato tabellare. Mario Bianchi Via Roma, /

In alcune applicazioni è necessario mostrare le informazioni in formato tabellare. Mario Bianchi Via Roma, / JTable In alcune applicazioni è necessario mostrare le informazioni in formato tabellare Nome Cognome Indirizzo Telefono Mario Bianchi Via Roma, 12 059/1111111 Franco Rossi Via Milano, 33 059/2222222 119

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Eventi versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) In questa lezione introduciamo alcuni strumenti che Java rende disponibili per la creazione di interfacce utente a manipolazione diretta, dette anche WYSISYG (what you see is what you get), con un elevato

Dettagli

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Le basi della grafica in Java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Elaborazione classica o imperativa L elaborazione è concentrata nel momento centrale, durante

Dettagli

Swing e la programmazione a eventi. Prova Finale Ingegneria del Software Davide Mazza

Swing e la programmazione a eventi. Prova Finale Ingegneria del Software Davide Mazza Swing e la programmazione a eventi Prova Finale Ingegneria del Software Davide Mazza davide.mazza@polimi.it http://home.dei.polimi.it/mazza Lo stile basato su eventi I componenti interagiscono attraverso

Dettagli

Campo Minato. in java

Campo Minato. in java Campo Minato in java Il gioco campo rettangolare o quadrato suddiviso in tanti quadratini Il giocatore deve sminare il campo, cliccando sui quadratini, col tasto destro o col tasto sinistro il gioco cliccando

Dettagli

! GUI in Java: AWT. ! Concetti: ! Componenti. ! Eventi. ! Ascoltatori. ! (Layout) ! Documentazione. ! Libri, Fotocopie. !

! GUI in Java: AWT. ! Concetti: ! Componenti. ! Eventi. ! Ascoltatori. ! (Layout) ! Documentazione. ! Libri, Fotocopie. ! Riassunto GUI in Java con l AWT 2 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 21 18 maggio 2015!

Dettagli

Grafica in Java. introduzione

Grafica in Java. introduzione Grafica in Java introduzione Awt vs swing Contenitori Top level Swing: indipendenza dalla piattaforma muro grezzo da rivestire ad esempio con pannelli Frame Un frame (lett.: 'cornice') è, a livello visivo,

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create

Dettagli

Programmazione Java: Interfacce grafiche (GUI)

Programmazione Java: Interfacce grafiche (GUI) Programmazione Java: Interfacce grafiche (GUI) romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp ( 1 ) (GUI) Interfacce grafiche Rendere facili le cose semplici e possibili le cose difficili

Dettagli

Progettazione e Sviluppo di Interfacce Grafiche con Java Swing

Progettazione e Sviluppo di Interfacce Grafiche con Java Swing Progettazione e Sviluppo di Interfacce Grafiche con Java Swing Esercitazioni di Progettazione del Software A.A. 2012 2013 Alessandro Russo e Massimo Mecella Sapienza Università di Roma Facoltà di Ingegneria

Dettagli

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Java Applet 1 Application VS Applet Una

Dettagli

SAPIENZA Università di Roma A.A Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma A.A Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma A.A. 2011-2012 Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi

Dettagli

GUI e java swing. Templates per GUI degli IDE. Gli IDE forniscono Template per generare interfacce grafiche.

GUI e java swing. Templates per GUI degli IDE. Gli IDE forniscono Template per generare interfacce grafiche. GUI e java swing Raffaella Brighi, a.a. 2006/07 Corso di Laboratorio II. A.A. 2006-07 CdL Operatore Informatico Giuridico. Templates per GUI degli IDE Gli IDE forniscono Template per generare interfacce

Dettagli

Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini...

Interfacce grafiche. Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini... Interfacce grafiche Una GUI (Graphic User Interface) contiene vari componenti: bottoni, etichette, immagini... Alcuni componenti ne contengono altri (ad esempio le finestre), e sono detti contenitori.

Dettagli

Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce

Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce Master in Web Technology e Security luglio - settembre 2000 JAVA Alberto Martelli Parte III Programmazione grafica Classi astratte Vogliamo implementare un algoritmo di ordinamento di un array che sia

Dettagli

SAPIENZA Università di Roma a.a Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma a.a Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma a.a. 2010-2011 Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi

Dettagli

Evento sulla modifica delle caselle di testo

Evento sulla modifica delle caselle di testo Evento sulla modifica delle caselle di testo La casella di testo, ma anche l area di testo, è per sua natura interessata a vari tipi di evento prodotti dalle azioni degli utenti. Il clic del mouse sulla

Dettagli

Introduzione (Swing vs AWT)

Introduzione (Swing vs AWT) Swing Introduzione (Swing vs AWT) Swing Swing sono delle librerie introdotte a partire dalla versione 1.2 del JDK come evoluzione concettuale delle librerie precedenti (Abstract Window Toolkit (AWT)) AWT

Dettagli

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame("Finestra"); // crea frame invisibile

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame(Finestra); // crea frame invisibile I Canvas Tra i vari contenitori Java il Canvas (area di disegno o tela) è una semplice superficie di disegno particolarmente utile per visualizzare immagini o per effettuare altre operazioni grafiche.

Dettagli

Figura 1 - Finestra Tabella

Figura 1 - Finestra Tabella Capitolo IV Oggetti Creare una tabella Creare una tabella per inserire dei dati Per inserire una tabella premere il pulsante Tabella presente nella sezione Tabella della barra Inserisci. Viene visualizzata

Dettagli

Programmazione in Java e gestione della grafica. Lezione 21

Programmazione in Java e gestione della grafica. Lezione 21 Programmazione in Java e gestione della grafica Lezione 21 2 Parliamo ( ancora ) di Eventi della GUI (Eventi del mouse e della tastiera) 3 Gestione degli eventi del mouse Eventi del Mouse Creo un oggetto

Dettagli

La nostra interfaccia avrà l aspetto seguente:

La nostra interfaccia avrà l aspetto seguente: Esercitazione N6: Utilizzo di GridLayout per la costruzione di una Calcolatrice. Gestione degli eventi mediante il metodo getsource di ActionEvent e utilizzo di Font. La nostra interfaccia avrà l aspetto

Dettagli

Introduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F.

Introduzione alla programmazione con linguaggio Java {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Introduzione alla programmazione con linguaggio Java 2004 {Dott.ssa E. Calabresu, Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba } Note di Copyright Queste trasparenze (slide) sono coperte dalle

Dettagli

Java Interfaccia Grafica

Java Interfaccia Grafica Java Interfaccia Grafica Testi di consultazione: a) core Java 1.1 (Volume I Fundamentals) Cay S. Horstmann, Gary Cornell, Prentice Hall, 1997. b) Java 1.2 Unleashed, Jamie Jaworski, Sams Publishing, 1998.

Dettagli

L INTERFACCIA GRAFICA DI EXCEL

L INTERFACCIA GRAFICA DI EXCEL Dopo l avvio del foglio elettronico apparirà un interfaccia grafica nella quale verrà aperta una nuova cartella di lavoro alla quale il PC assegnerà automaticamente il nome provvisorio di Cartel1. La cartella

Dettagli

Le Applet Java. Le Applet

Le Applet Java. Le Applet Le Applet Java ed anche i gestori del layout ed altri eventi ed altro ancora Le Applet Sono delle piccole applicazioni Non sono pensate per essere eseguite indipendentemente (non vengono lanciate con il

Dettagli

BorderLayout. 1 Gestori di Layout http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html (guida visuale)

BorderLayout. 1 Gestori di Layout http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html (guida visuale) Posizionamento diretto di un elemento GUI o tramite gestori di layout Nel posizionamento diretto (dipendente dalle impostazioni grafiche del sistema) non abbiamo bisogno di un gestore di layout (layout

Dettagli

Esempi di programmazione

Esempi di programmazione Esempi di programmazione Applet che disegna cerchi Costruire un'applet disegnoapplet che ad ogni pressione del mouse disegna un cerchio 1 disegnoapplet 1. Deve usare la classe Applet? NO 2. Deve estendere

Dettagli

Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER.

Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER. Marco Faella Elementi di programmazione di interfacce Grafiche. Il pattern OBSERVER. 9 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente:

Dettagli

Applet. Applet: il termine identifica piccole applicazioni da eseguirsi all interno di un browser.

Applet. Applet: il termine identifica piccole applicazioni da eseguirsi all interno di un browser. Applet IngSW0304 p.1 Applet Applet: il termine identifica piccole applicazioni da eseguirsi all interno di un browser. Una pagina web può contenere un riferimento al codice di un applet che verrà scaricato

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo L6 (JAVA9) 3 Parametri e browser 1 Prerequisiti Elementi di base HTML Programmazione Java Interfacce grafiche e gestione eventi 2 1 Introduzione In questa Unità vediamo

Dettagli

GRAFICA ED EVENTI SWING E AWT

GRAFICA ED EVENTI SWING E AWT GRAFICA ED EVENTI SWING E AWT Dott. Riccardo Zese riccardo.zese@unife.it argomenti SWING: architettura e gerarchia Componenti principali: JFrame, JPanel, Graphics Gestione degli eventi Ulteriori esempi

Dettagli

GRAFICA ED EVENTI SWING E AWT

GRAFICA ED EVENTI SWING E AWT GRAFICA ED EVENTI SWING E AWT Dott. Riccardo Zese riccardo.zese@unife.it argomenti SWING: architettura e gerarchia Componenti principali: JFrame, JPanel, Graphics Gestione degli eventi Ulteriori esempi

Dettagli

grafica & applet il contesto grafico

grafica & applet il contesto grafico grafica & applet il contesto grafico classe Graphics package java.awt istanzia oggetti che descrivono un contesto grafico contesto grafico = insieme di standard per la grafica colore corrente informazioni

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction

Dettagli

Java SE 6. Programmazione grafica (2)

Java SE 6. Programmazione grafica (2) Java SE 6 Programmazione grafica (2) diegozabot@yahoo.it ursula.castaldo@gmail.com L'aspetto del componente va fissato PRIMA di aggiungerlo al contenitore. JComponent Tutti i componenti swing condividono

Dettagli

Graphical User Interfaces in Java

Graphical User Interfaces in Java Graphical User Interfaces in Java Luca Grilli Informatica Grafica - Luca Grilli 1 Java2D e GUI L utilizzo delle Java2D API non può prescindere dalla conoscenza del supporto di Java alla programmazione

Dettagli