Corso sul linguaggio Java

Похожие документы
Gestione degli eventi in Java

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. Oggi: GUI in Java, l AWT. Oggi. GUI in Java. Cos è una GUI. Stefano Mizzaro 1

L interfaccia grafica con Java

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

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono"," "}; //nomi delle colonne della tabella

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

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

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

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

L interfaccia grafica in Java

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

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

Grafico della parabola

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

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

Programmazione Orientata agli Oggetti in Linguaggio Java

Interazioni col mondo: eventi

Corso sul linguaggio Java

Corso Eclipse. Prerequisiti. 3 Window Builder

Java: Compilatore e Interprete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

Java Interfaccia Grafica

Tale attività non è descritta in questa dispensa

ESERCITAZIONI SU Java

Corso Eclipse. Prerequisiti. 1 Introduzione

TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet

Esercitazione n 4. Obiettivi

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Alessandro De Luca. Lezione, 13 maggio 2015

Esercizio data base "Biblioteca"

Registratori di Cassa

Programmare in Java. Olga Scotti

Introduzione all uso di Eclipse

Eclipse. Avviare un progetto e compilare un semplice programma

Programmazione Java: Interfacce grafiche (GUI)

Gestione Risorse Umane Web

SERVIZIO DI MESSAGGISTICA ALL UTENTE. Manuale per l operatore

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

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

5-1 FILE: CREAZIONE NUOVO DOCUMENTO

L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1

APPLICAZIONI & APPLET

Sviluppo di Interfacce Grafiche in Java

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

DOCUMENTO ESERCITAZIONE ONENOTE. Utilizzare Microsoft Offi ce OneNote 2003: esercitazione rapida

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

GESTIONE DEI PROCESSI

Raggruppamenti Conti Movimenti

Assegnazione dei centri di costo ai numeri di riferimento delle fatture e ai numeri di licenza di affrancatura Guida al servizio online «Gestore di

Ottava Esercitazione. introduzione ai thread java mutua esclusione

interfacce ed eventi intercettare il mouse ed altri eventi

Scope e visibilità per classi

CERTIFICATI DIGITALI. Manuale Utente

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

Tutorial sugli ambienti di sviluppo: Eclipse e NetBeans

7.4 Estrazione di materiale dal web

Le L z e ione n e d i d V isu s a u l B asi s c Prof.ssa Paola Goi 1

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Main System Monitor Keyboard

Algoritmi di Ricerca. Esempi di programmi Java

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

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

appunti delle lezioni Architetture client/server: applicazioni server

- DocFinance Manuale utente

Esercizi della lezione 5 di Java

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Access. Microsoft Access. Aprire Access. Aprire Access. Aprire un database. Creare un nuovo database

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

Definire gli attributi dei blocchi

MICHELANGELO Piattaforma autorizzativa per la gestione di interventi riservata ai fornitori

Prova d Esame Compito B

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Concetto di Funzione e Procedura METODI in Java

17 Gli scenari. cartelle di lavoro; unendoli poi in un

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE

MANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:

Manuale Utente MyFastPage

Manuale Utente. Add-On Flusso ACN ULSS 18 Rovigo

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Corso di Informatica

Acer erecovery Management

Programmazione in rete e laboratorio

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A Esercitazione. Programmazione Object Oriented in Java

Progettazione : Design Pattern Creazionali

Leggere un messaggio. Copyright 2009 Apogeo

Транскрипт:

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 con gli elementi grafici descritti nelle Unità A1 non sono interattive in quanto gli elementi grafici sono statici e non reagiscono alle azioni dell utente (es. aprire o chiudere una finestra). In questa Unità vediamo come rendere attivi gli elementi grafici attraverso la gestione degli eventi. 3 Creare e gestire gli eventi La programmazione OOP è basata sullo scambio di messaggi tra oggetti e questa caratteristica si manifesta anche quando si vogliono gestire eventi. 1. l utente compie una azione su un oggetto origine dell evento (ad es. invia un messaggio chiudi ad una finestra); 2. l oggetto origine manda un messaggio ad un generatore di eventi (ad es. WMS, Window Management System, per le finestre) che a sua volta genera automaticamente un oggetto evento; 3. l oggetto evento manda a sua volta un messaggio ad un altro oggetto, oggetto ascoltatore (listener); se il progettista ha implementato il codice relativo a questo oggetto ascoltatore e lo ha registrato, l applicazione eseguirà questo codice. 4. l oggetto ascoltatore, infine, manderà all oggetto destinatario (deciso dal programmatore, ad esempio l oggetto output) il messaggio che rappresenta l effetto dell azione eseguita dall utente. 4 2

Le classi di ascolto Mentre il punto 1. viene svolto dall utente e il punto 2. viene automaticamente eseguito dal sistema di generazione degli eventi, al progettista spetta la realizzazione dei punti 3. e 4. Java raccoglie gli ascoltatori in varie classi di ascolto aventi le seguenti caratteristiche: sono contenute in java.awt.event sono tutte interfacce (classi astratte in cui nessun metodo è implementato); il progettista deciderà, in base all applicazione, quali metodi di ascolto implementare; una stessa classe può gestire eventi di diversi elementi grafici 5 Le classi di ascolto Le classi d ascolto di Java principali sono riassunte in tabella. Come si nota il nome è composto dall oggetto origine seguito dal suffisso listener per ricordarle facilmente. 6 3

Package da importare Indifferentemente si può importare il package import java.awt.event.*; oppure la sola parte relativa agli ascoltatori da creare (ad esempio per le sole finestre): import java.awt.event.windowlistener; import java.awt.event.windowevent; 7 WindowListener Prevede i seguenti ascoltatori: 8 4

WindowListener Vogliamo realizzare un ascoltatore per attivare il pulsante di chiusura di una finestra. Schema dell ascoltatore Origine: finestra Interfaccia: WindowListener Evento: windowclosing(windowevent e) Gestore di evento: gestoref() Registrazione: addwindowlistener (new gestoref()); Poiché le classi di ascolto sono interfacce, dobbiamo comunque implementare tutti i metodi, lasciando vuoti quelli eventualmente non usati. 9 WindowListener // gestoref.java import java.awt.event.*; implements si usa per ereditare le interfacce Fine programma public class gestoref implements WindowListener { public void windowclosing(windowevent e) { System.exit(0); public void windowiconified(windowevent e) { public void windowdeiconified(windowevent e) { public void windowactivated(windowevent e) { public void windowdeactivated(windowevent e) { public void windowopened(windowevent e) { public void windowclosed(windowevent e) { 10 5

WindowListener L applicazione che usa il gestoref ha la struttura seguente: // window.java import java.awt.event.*; public class Window extends Frame { public Window() { settitle("gestione finestra"); setlocation(200,200); setsize(200,200); setvisible(true); addwindowlistener (new gestoref()); public static void main(string args[]) { Window w = new Window(); Impostazioni finestra Registrazione dell ascoltatore 11 WindowAdapter In questo esempio l ascoltatore è inserito nella classe dell applicazione. import java.awt.event.*; public class Window extends Frame { public Window() Per evitare la scrittura { settitle("gestione finestra"); dei metodi vuoti si setlocation(200,200); setsize(200,200); usano le classi Adapter setvisible(true); addwindowlistener (new gestoref()); public class gestoref extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); public static void main (String args[]) { new Window(); 12 6

WindowFocusListener Consideriamo questa classe d ascolto per vedere un altra caratteristica del gestore di eventi, sempre quando si scrive l applicazione come un unico file. Gli ascoltatori sono i seguenti: Origine: finestra Interfaccia: WindowFocusListener Evento: windowgainedfocus (WindowEvent e) windowlostfocus (WindowEvent e) Gestore di evento: la classe stessa Registrazione: addwindowfocuslistener (this); 13 WindowFocusListener import java.awt.event.*; public class gestorefocus extends Frame implements WindowFocusListener { TextField stato=new TextField (); public gestorefocus() { super("prova focus"); setsize (200,200); setvisible (true); stato.setbounds (20,40, 100,20); add (stato); addwindowfocuslistener (this); addwindowlistener (new gestoref()); public void windowgainedfocus (WindowEvent e) { stato.settext ("Focus on!"); public void windowlostfocus (WindowEvent e) { stato.settext("focus off!"); public static void main (String args[]) { new gestorefocus(); La classe è ascoltatore di se stessa Utilizza anche gestoref creato in precedenza Gli ascoltatori vengono implementati direttamente nella classe 14 7

ActionListener Questa interfaccia è in grado di gestire gli eventi relativi a: pulsanti caselle di testo menu Nonostante possa servire per rendere interattivi diversi elementi, questa classe prevede un solo metodo: 15 ActionListener Pulsanti Creiamo una finestra con un pulsante che, quando premuto, restituisca il nome in una casella di testo Origine: pulsante Interfaccia: ActionListener Evento: actionperformed (ActionEvent e) Gestore di evento: gestorepulsante() Registrazione: addactionlistener (new gestorepulsante()) 16 8

ActionListener Pulsanti import java.awt.event.*; public class gestorepulsante implements ActionListener { TextField txt; // attributo privato necessario al costruttore public gestorepulsante (TextField tf) { this.txt=tf; public void actionperformed (ActionEvent e) { txt.settext("premuto " + e.getactioncommand()); Necessita un costruttore con parametri per passare il nome della casella di testo al gestore Restituisce il nome del pulsante premuto, per poter svolgere azioni successive 17 ActionListener Pulsanti public class ButtonEvent extends Frame { Button btn = new Button("Premi"); TextField btn_txt = new TextField (50); ButtonEvent() { super("gestione pulsante"); setlocation (300,200); setsize (300,100); setlayout (null); btn.setbounds (10, 30, 60,30); btn_txt.setbounds(50, 70, 170, 120); add(btn_txt); add(btn); btn.addactionlistener(new gestorepulsante(btn_txt)); setvisible(true); public static void main (String args[]) { new ButtonEvent(); ATTIVITA : scrivere un applicazione che crei una finestra con controllo sulla chiusura e due pulsanti Annulla e Esci che rispettivamente, fanno continuare l esecuzione oppure la terminano. Impostazioni frame Registrazione ascoltatore con parametro 18 9

ActionListener Caselle di testo Creiamo una finestra con due caselle di testo editabili, in modo che quando l utente digita il testo in una di queste e prema INVIO, venga visualizzato il contenuto attuale della casella selezionata. Origine: casella di testo Interfaccia: ActionListener Evento: actionperformed (ActionEvent e) Gestore di evento: gestorecasella() Registrazione: addactionlistener (new gestorecasella()) 19 ActionListener Caselle di testo import java.awt.event.*; public class gestorecasella implements ActionListener { public void actionperformed (ActionEvent e) { System.out.println("Dato inserito: " + e.getactioncommand()); System.out.println (e.getsource()); Restituisce gli attributi della casella (dimensioni, nome, contenuto, stato, ecc) Restituisce il contenuto della casella attiva, dopo aver premuto INVIO 20 10

ActionListener Caselle di testo public class TextFieldEvent extends Frame { TextField cognome_txt = new TextField ("Cognome"); TextField nome_txt = new TextField("Nome"); TextFieldEvent() { super("gestione caselle di testo"); setlocation (200,200); setsize (100,100); setlayout(null); cognome_txt.setbounds(10, 30, 60,30);nome_txt.setBounds(10,60, 60,30); add (cognome_txt); add (nome_txt); cognome_txt.addactionlistener (new gestorecasella()); nome_txt.addactionlistener (new gestorecasella()); setvisible(true); public static void main(string args[]) { TextFieldEvent t = new TextFieldEvent(); 21 ActionListener Menu Creiamo una finestra con un menu di opzioni da ascoltare. Origine: menu Interfaccia: ActionListener Evento: actionperformed (ActionEvent e) Gestore di evento: gestoremenu() Registrazione: addactionlistener (new gestoremenu()) 22 11

ActionListener Menu import java.awt.event.actionlistener; import java.awt.event.actionevent; public class MenuSemplice extends Frame { public MenuSemplice() { super("ascolto di menu"); Panel p =new Panel(); setlocation (200,100); setsize (300,150); setvisible (true); MenuBar menu= new MenuBar(); // impostazione menu creazione menu File e menu Help con alcune opzioni file.addactionlistener(new gestoremenu()); // registrazione ascoltatori help.addactionlistener(new gestoremenu());..segue classe. 23 ActionListener Menu public class gestoremenu implements ActionListener { public void actionperformed(actionevent evt) { String s=evt.getactioncommand(); System.out.println (s); if (s.equals("exit")) System.exit(0); public static void main (String args[]) { new MenuSemplice(); Rileva l opzione selezionata e la stampa. In caso di Exit il programma termina 24 12

Argomenti Creare e gestire gli eventi Le classi di ascolto Package da importare WindowListener WindowAdapter WindowFocusListener ActionListener 25 Altre fonti di informazione P.Gallo, F.Salerno Java, ed. Minerva Italica M. Bigatti Il linguaggio Java, ed. Hoepli 26 13