Eventi e listener per i componenti grafici

Похожие документы
Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A

Gestione dell interattività: gli eventi

Programmazione in Java e gestione della grafica. Lezione 21

interfacce ed eventi intercettare il mouse ed altri eventi

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

Esempi di programmazione

! Programmazione strutturata. ! OO: TDA, scambio messaggi, eredità, polimorfismo, OO in Java. ! Rassegna API. ! Documentazione Javadoc delle API

Gestione di eventi ed interfacce utente grafiche

Gestione degli eventi in Java

Interazioni col mondo: eventi

Appendice B - Othello come applet

Programmazione ad Eventi

Campo Minato. in java

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

Sviluppo di Interfacce Grafiche in Java

Programmazione ad Eventi

8. GUI : Graphics User Interface

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

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

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

Java Interfaccia Grafica

Laboratorio di IUM. Lezione 3. La gestione degli eventi. Di Blasi Gianpiero - D.M.I. - Università di Catania

L interfaccia grafica in Java

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

Alessandro De Luca. Lezione, 13 maggio 2015

Grafico della parabola

Java Interfaccia Grafica

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

AWT: Abstract Window Toolkit

Ereditarietà e classi astratte

Esercitazione sui Design Pattern

Progettazione e Sviluppo di Interfacce Grafiche con Java Swing

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

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

LPR 2005/ 2006 Lezione n.9. Elementi di grafica per lo svolgimento del progetto Double Buffering Caricamento delle immagini Gestione degli eventi

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Le Applet Java. Le Applet

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

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

Java, Oggetti e Strutture Dati di G. Callegarin - Edizioni CEDAM

Corso sul linguaggio Java

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

GESTIONE DEGLI ERRORI

E21 Esercizi sulle collezioni in Java

Introduzione al package grafico Swing

Транскрипт:

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 elementi fondamentali per la GUI perché consentono di intercettare l interazione con l utente. Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente (es click del mouse o click su un tasto della tastiera). La libreria standard di Java contengono delle classi che rappresentano gli eventi che più spesso occorre gestire.

Eventi del mouse mouse pressed mouse released mouse clicked mouse entered mouse exited mouse moved mouse dragged Classe MouseEvent Point getpoint(): restituisce la posizione dell evento del mouse int getx(): restituisce la coord x dell evento del mouse int gety(): restituisce la coord y dell evento del mouse int getclickcount(): restituisce il numero dei click consecutivi associati all evento

Oggetti listener Un listener è un oggetto che aspetta che si verifichi un evento e quando ciò accade compie un azione in risposta. Per gestire un evento occorre: 1. creare un oggetto listener per l evento che interessa 2. aggiungere il listener al componente grafico che può generare l evento L interfaccia Listener Gli oggetti listener sono istanze di classi che implementano interfacce listener della libreria standard di Java. La libreria standard di Java contiene una serie di interfacce per ogni categoria di eventi: MouseListener, MouseMotionListener, KeyListener, ActionListener, ecc. Quando si scatena un evento il metodo appropriato dell ascoltatore viene invocato automaticamente.

L interfaccia MouseListener void mousepressed (MouseEvent evento): invocato quando viene premuto il pulsante del mouse void mousereleased (MouseEvent evento): invocato quando il pulsante del mouse viene rilasciato void mouseclicked (MouseEvent evento): invocato quando il pulsante del mouse viene premuto e rilasciato nella stessa posizione void mouseentered (MouseEvent evento): invocato quando il mouse passa sopra ad un componente grafico void mouseexited(mouseevent evento): invocato quando il mouse esce da un componente grafico Componenti che possono generare eventi I componenti che possono generare eventi hanno metodi che possono essere invocati per aggiungere un ascoltatore del tipo appropriato. Le applet, ad esempio, hanno il metodo addmouselistener che consente di aggiungere all applet stessa un oggetto che implementa l interfaccia MouseListener. Quando si invoca tale metodo si stabilisce un collegamento tra il componente grafico che genera l evento e l ascoltatore per gestirlo.

Creazione di una classe listener (che implementa l interfaccia mouselistener) per la classe MyClass. MyClass rappresenta un generico componete grafico che genera l evento «interfaccia» MouseListener +mouseclicked() +mousepressed() +mousereleased() +mouseentered() +mouseexited() MouseEvent +getpoint() +getx() +gety() +getclickcount() Esempio applicato ad una classe applet Codice della applet (vuota) che istanzia nel metodo init l oggetto listener e lo collega. Viene passato al listener un riferimento all oggetto su cui devono essere catturati gli eventi import java.awt.*; import java.applet.applet; public class TheApplet extends java.applet.applet { /** Initialization method that will be called after the applet is loaded * into the browser. */ public void init() { // istanzio l'oggetto MouseListener per la mia applet TheAppletMouseListener myappletmouselistener = new TheAppletMouseListener (this); addmouselistener(myappletmouselistener); public void paint(graphics pag){

Codice del listener per l applet TheApplet. Il costruttore riceve un riferimento alla applet. La classe implementa tutti i metodi dell interfaccia. import java.awt.*; import java.awt.event.*; public class TheAppletMouseListener implements MouseListener{ private TheApplet myapplet; /** Creates a new instance of MyAppletMouseListener */ public TheAppletMouseListener(TheApplet app) { myapplet=app; public void mouseclicked(mouseevent e) { public void mouseentered(mouseevent e) { public void mouseexited(mouseevent e) { public void mousepressed(mouseevent e) { public void mousereleased(mouseevent e) { Esempio: scrivere sulla finestra della applet l evento del mouse che si è scatenato. import java.awt.*; import java.applet.applet; public class TheApplet extends java.applet.applet { private String descrevento = "CIAOOOOO"; /** Initialization method that will be called after the applet is loaded * into the browser. */ public void init() { // istanzio l'oggetto MouseListener per la mia applet TheAppletMouseListener myappletmouselistener = new TheAppletMouseListener (this); addmouselistener(myappletmouselistener); public void paint(graphics pag){ pag.drawstring(descrevento, 10, 50); public void setdescrevento(string str){ descrevento=str;

import java.awt.*; import java.awt.event.*; public class TheAppletMouseListener implements MouseListener{ private TheApplet myapplet; /** Creates a new instance of MyAppletMouseListener */ public TheAppletMouseListener(TheApplet app) { myapplet=app; public void mouseclicked(mouseevent e) { myapplet.setdescrevento("mouseclicked"); public void mouseentered(mouseevent e) { myapplet.setdescrevento("mouseentered"); public void mouseexited(mouseevent e) { myapplet.setdescrevento("mouseexited"); public void mousepressed(mouseevent e) { myapplet.setdescrevento("mousepressed"); public void mousereleased(mouseevent e) { myapplet.setdescrevento("mousereleased"); Esercizio Scrivere una applet che al click del mouse disegni un cerchio nel punto in cui si è cliccato.