Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d....

8
Java gestione eventi introduzione

Transcript of Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d....

Page 1: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

Java gestione eventi

introduzione

Page 2: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

La gestione degli eventi

Ci sono 3 oggetti interessati alla g. d. e.:• L’oggetto interessato (event source)

ad esempio se clicchiamo su una label, sarà la label stessa

• l’eventoad esempio se clicchiamo su una label, sarà il click del mouse, con le sue specificità tipo la posizione del mouse, lo stato dei suoi tasti, ecc. In generale è un oggetto di classe ActionEvent

• il gestore dell’evento (listener)il gestore sarà un oggetto che implementa l’intefaccia ActionListener ed avrà un metodo actionPerformed( … ) che riceve come parametro l’evento.

Page 3: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

La gestione degli eventi

• Le classi e le interfacce citate si trovano in java.awt.event.*

• le interfacce sono delle particolari classi che contengono solo la dichiarazione del metodo, che deve essere di volta in volta implementato (override)

• si parla di modello “osservatore”, pattern Observer in inglese

Page 4: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

…in pratica

• costruiamo una classe GestoreEventiimport java.awt.event.*;

class GestoreEvento implements ActionListener {

public void actionPerformed( ActionEvent evento ) {

System.out.println("Hai premuto:" + evento.getActionCommand());System.out.println(" when: " + evento.getWhen());System.out.println(" tasti: " + evento.getModifiers());System.out.println(" source: " + evento.getSource());System.out.println(" id: " + evento.getID());System.out.println(" when:" + evento.paramString());

}}

Page 5: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

…in pratica

• Creiamo una classe che visualizza un frame con 2 pulsanti

import java.awt.*class FrameConPulsanti extends Frame {

FrameConPulsanti() {this.setBounds(20,20, 200, 300);this.setVisible(true);

Button btn1 = new Button("apri");Button btn2 = new Button("chiudi");

/* aggiungere qui il gestore dell’evento */

this.setLayout(new FlowLayout(FlowLayout.CENTER, 10,10));this.add(btn1);this.add(btn2);

}}

Page 6: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

…in pratica

• Aggiungiamo il Listener (l’ascoltatore dell’evento) subito prima di aggiungere i pulsanti al form

GestoreEvento gestoreClick = new GestoreEvento(); btn1.addActionListener( gestoreClick ); btn2.addActionListener( gestoreClick );

Page 7: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

…in pratica

• infine costruiamo una nuova classe con main per testare le nostre classi

class ProvaFrameEventi {public static void main(String[] s ) {

new FrameConPulsanti();

}}

Page 8: Java gestione eventi introduzione. La gestione degli eventi Ci sono 3 oggetti interessati alla g. d. e.: L’oggetto interessato (event source) ad esempio.

Compilare ed eseguire

• Dovendo modificare più file insieme, conviene:

• creare una cartella per il nostro “progetto”

• compilare tutti i sorgenti .java con

javac *.java• eseguire l’unica classe che ha il main con

java ClasseConMain