Java SE 6. Programmazione grafica (3)

Documenti analoghi
INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

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

Gestione degli eventi in Java

Corso sul linguaggio Java

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

interfacce ed eventi intercettare il mouse ed altri eventi

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

Gestione dell interattività: gli eventi

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

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

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

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

Interazioni col mondo: eventi

Gestione di eventi ed interfacce utente grafiche

8. GUI : Graphics User Interface

Java Interfaccia Grafica

Sviluppo di Interfacce Grafiche in Java

Introduzione (Swing vs AWT)

L interfaccia grafica con Java

Paradigmi di programmazione (sperimentazioni)

Programmazione in rete e laboratorio

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

Evento sulla modifica delle caselle di testo

L interfaccia grafica in Java

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

Programmazione in Java e gestione della grafica. Lezione 21

Alessandro De Luca. Lezione, 13 maggio 2015

Utilizzo delle Maschere in Microsoft Access

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

Progettazione e Sviluppo di Interfacce Grafiche con Java Swing

Application VS Applet

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

24 - Possibili approfondimenti

Introduzione al package grafico Swing

APPLICAZIONI & APPLET

Sviluppo di Interfacce Grafiche in Java. Concetti di Base ed Esempi.

Ereditarietà (ultima)

Corso sul linguaggio Java

Programmazione ad Eventi

ESERCITAZIONI SU Java

Utilizzo delle Maschere in Microsoft Access

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

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

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

La nostra interfaccia avrà l aspetto seguente:

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

Java Interfaccia Grafica

Programmazione in Java e gestione della grafica. Lezione 19

Scope e visibilità per classi

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

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Programmazione Java: Interfacce grafiche (GUI)

TECNOLOGIE APPLICAZIONI WEB Linguaggio Java: Le Applet

Corso Eclipse. Prerequisiti. 3 Window Builder

APPLICAZIONI & APPLET

Grafico della parabola

Esercitazione sui Design Pattern

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

Guida a Getrix: Indice Multimedia Virtual tour

Graphic User Interface (GUI) Model / View / Controller. Fondamenti di Informatica T2 Modulo 2. Università di Bologna A.A.

Principi di base della programmazione di interfacce grafiche in Java

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

MVC: esempio in java. views e controllers in javax.swing

La classe java.lang.object

Chiamata delle funzioni JavaScript da un applet

component - container - layout

4. I moduli in Access 2000/2003

Portale di gestione Version 7.5

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

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

Word 2003 Elementi Grafici

Graphic User Interface (GUI)

Grafici. 1 Generazione di grafici a partire da un foglio elettronico

Documento di Analisi. Mockup

U88 Automatico. Versione 3.0

18 - Classi parzialmente definite: Classi Astratte e Interfacce

Scegli l attività che intendi svolgere e clicca con il tasto sinistro del mouse sull argomento (esempio figura 2)

Progetto Travel Manager

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

DESCRIZIONE ILLUSTRATA FUNZIONALITA' SOFTWARE ORAZIO WEB

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Università degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale

DELLA SPECIALIZZAZIONE DI INFORMATICA

Interfacce e Polimorfismo

Da quali parti è composto un sistema operativo?

MANUALE UTENTE. Portale Web Scambio sul posto GSE IMPRESE DI VENDITA. stato documento draft approvato consegnato

Processamento delle immagini

Raccolta e memorizzazione dei dati immessi nei moduli dai visitatori

Configurazione degli Avvisi di Sistema. Mike McBride Traduzione del documento: Samuele Kaplun Traduzione e revisione del documento: Luigi Toscano

Microsoft Access. Microsoft Access. Maurizio Rebaudengo, Paolo Garza 1. Microsoft Access. Creazione base di dati. Apertura di una base dati

Appendice B - Othello come applet

Progetto di Applicazioni Software

Il disegno in Java. Il disegno in Java. Capitolo 16. JComponent e il meccanismo di disegno ANDREA GINI

WEBMAIL ODCECTA.IT. Guida all uso

Excel 2. Master Universitario di II livello in MANAGER NELLE AMMINISTRAZIONI PUBBLICHE A.A Prof.ssa Bice Cavallo

INTRODUZIONE SCHEDE. Le schede visualizzano i dati in tre categorie principali: Cliente - Macchina - Intervento

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

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

Operazioni preliminari: creare una cartella in Documenti

La stampa unione in Word 2007

Transcript:

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 occupa di questi eventi. Queste interfacce sono chiamate event listeners. Ogni listener gestisce un tipo di evento specifico. Il package java.awt.event contiene tutti gli event listener di base, così come gli oggetti che rappresentano gli eventi specifici.

Event Listeners (2) ActionListener -> Eventi "azione", generati generalmente da un'azione su un componente da parte dell'utente (es click su un pulsante) FocusListener -> Eventi sul focus della tastiera, generati quando un componente come un campo di testo ottiene o perde il focus KeyListener -> Eventi della tastiera, generati quando un utente scrive con la tastiera MouseListener -> Eventi del mouse, generati dal click del mouse, dall'entrata e dall'uscita del mouse dall'area di un componente WindowListener -> Eventi della finestra, generati quando si massimizza, minimizza, muove o chiude una finestra.

Event Listeners (3) 1. IMPOSTAZIONE DEL TIPO DI EVENTO Una classe può implementare tanti listeners quanti ne ha bisogno. Per implementare uno o più listeners si utilizza la parola chiave implements public class Classe extends JFrame implements ActionListener { //... } Per implementare più di un listener basta elencarli separati da virgola, dopo "implements" Per utilizzare queste classi nei programmi si utilizza: import java.awt.event.*;

Event Listeners (4) 2. IMPOSTAZIONE DEI COMPONENTI Una volta dichiarata l'implementazione di un listener, bisogna aggiungere un listener corrispondente al componente che si vuole mettere in ascolto (di un evento). Dopo aver creato il componente, gli si può associare uno dei seguenti metodi: addactionlistener() - JButton, JTextField addfocuslistener() - tutti i componenti Swing addkeylistener() - tutti i componenti Swing addmouselistener() - tutti i componenti Swing addmousemotionlistener() - tutti i componenti Swing addtextlistener() - JTextField e JTextArea addwindowlistener() - JFrame

Event Listener (5) Esempio JButton btn = new JButton("Pulsante"); btn.addactioneventlistener(this); Tutti i metodi per l'aggiunta di un listener prendono un argomento: l'oggetto che sta ascoltando il tipo di evento specificato dal listener. Utilizzare this significa che la classe corrente è l'event listener.

Event Listeners (6) 3. METODI PER LA GESTIONE DEGLI EVENTI Una volta che un'interfaccia viene associata a una classe, la classe deve gestire tutti i metodi contenuti nell'interfaccia. L'interfaccia ActionListener ha un solo metodo: actionperformed() Tutte le classi che implementano ActionListener devono avere un metodo con la seguente struttura: public void actionperformed(actionevent event) { // qui gestisco l'evento }

Event Listeners (7) Se un solo componente nell'interfaccia grafica del programma ha un listener per gli action events, allora si sa che il metodo actionperformed() verrà invocato solo in risposta a un evento generato da quel componente. Ma se ci sono più componenti che utilizzano un action event listener, allora si utilizza l'oggetto ActionEvent per sapere quale componente ha generato l'evento. Il metodo getsource() dell'oggetto può essere usato per determinare il componente che ha generato l'evento Object sorgente = event.getsource(); L'oggetto restituito da getsource può venir confrontato con i componenti tramite l'operatore ==

Event Listeners (8) Esempio Object sorgente = event.getsource(); if (sorgente == btnesci) { //... } Confronto con un oggetto di nome btnesci.

S09Eventi Creare un programma con 3 pulsanti e far visualizzare tramite una finestra di dialogo qual è il pulsante che si è premuto.

S10CambiaTitolo Creare un programma con due pulsanti: "Titolo rosso" e "Titolo verde". Quando si clicca su uno dei due pulsanti, cambia il titolo della finestra in "Finestra Rossa" e "Finestra Verde" rispettivamente. NOTE Per cambiare il titolo della finestra, si usa il metodo settitle (String)

Window Events Gli eventi legati alle finestre avvengono quando un utente apre o chiude un oggetto finestra (es. JFrame). Qualsiasi componente può generare questi eventi, che vengono supportati se la classe implementa l'interfaccia WindowListener Ci sono 7 metodi che vanno implementati: windowactivated(windowevent) windowclosed(windowevent) windowclosing(windowevent) windowdeactivated(windowevent) windowdeiconified(windowevent) windowiconified(windowevent) windowopened(windowevent) Hanno tutti la stessa forma: public void windowopened(windowevent evt) { } All'oggetto di tipo JFrame devo aggiungere il metodo addwindowlistener

S11GestFinestre Creare un programma S11GestFinestre che mostri un messaggio quando la finestra viene aperta, chiusa, ridotta a icona e ripristinata.

Mouse Events (1) Gli eventi legati al Mouse vengono generati dai seguenti tipi di interazione utente: click del mouse l'entrata del mouse nell'area di un componente l'uscita del mouse dall'area di un componente L'interfaccia MouseListener ha i seguenti metodi mouseclicked(mouseevent) mouseentered(mouseevent) mouseexited(mouseevent) mousepressed(mouseevent) mousereleased(mouseevent) Ognuno di questi metodi prende la forma base: public void mousereleased(mouseevent event) {

Mouse Events (2) L'oggetto MouseEvent ha i seguenti metodi: getclickcount() - restituisce il numero di volte (inter0) che il mouse è stato cliccato getpoint() - restituisce le coordinate x,y (oggetto Point) all'interno del componente dove il mouse è stato cliccato getx() - restituisce la posizione x gety() - restituisce la posizione y

S12GestMouse Realizzare un programma S12GestMouse che faccia cambiare il testo di una JLabel quando ci si passa sopra con il mouse. Visualizzare anche le coordinate del mouse quando si clicca sopra l'oggetto JLabel. Provare a modificare il programma, creando due JLabel: - la prima sarà sensibile al passaggio del mouse - la secondo sarà sensibile al click

FocusEvent Gli eventi del focus si verificano quando un componente ottiene o perde il focus dell'input su un'interfaccia grafica. Il focus descrive il componente che è attivo per l'inserimento di dati da tastiera, e si applica a tutti i componenti che possono ricevere un input (viene evidenziato dal cursore che lampeggia nei JTextField e nelle JTextArea, o da un contorno puntinato su un JButton. A un componente può essere dato il focus tramite il metodo requestfocus() L'interfaccia FocusListener ha due metodi: public void focusgained(focusevent event) {} public void focuslost(focusevent event) {} Per determinare quale oggetto ha ottenuto o perso il focus, si

S13GestFocus Realizzare un programma con due JTextField e due rispettive JLabel. Le JLabel segnalano se il campo di testo associato ha il focus. Quando si passa da un campo di testo all'altro, le etichette devono cambiare in relazione al passaggio (l'etichetta del campo di testo che ha il focus segna "FOCUS", l'altra "NO FOCUS")

Key Events Gli eventi di tipo Key si verificano quando un tasto viene premuto sulla tastiera. L'interfaccia KeyListener prevede 3 metodi: keypressed(keyevent) keyreleased(keyevent) keytyped(keyevent) Hanno la seguente struttura: public void keypressed(keyevent event) {} Il metodo getkeychar() di KeyEvent restituisce il carattere del tasto associato con l'evento.

S14GestKey Il programma contiene solo un oggetto JTextField in una finestra. Quando si scrive un carattere nel campo di testo, una finestra di dialogo di tipo MessageDialog visualizza il carattere inserito nel campo di testo tramite il metodo getkeychar() di KeyEvent.

Creare la seguente gestione di eventi chiusura finestra: avvisa che si sta chiudendo la finestra con un messaggio di saluti controlla che il contenuto di "Anno di nascita" sia un numero intero compreso fra 1900 e 2000 quando si passa sopra al pulsante INVIA viene visualizzato un testo (tramite una JLabel) che dice che verranno inviati i dati inseriti, e quando si passa sopra al pulsante CANCELLA segnala nella stessa JLabel che i dati verranno cancellati quando si preme INVIA viene visualizzata una MessageDialog che mostra tutti i dati inseriti quando si preme CANCELLA tutti i campi di testo vengono "puliti" S15Eventi Creare un programma che crei una finestra con i seguenti campi: Nome (JTextField) Cognome (JTextField) Indirizzo (JTextField) Anno di nascita (JTextField) e due pulsanti INVIA (invia di dati) CANCELLA (pulisce il modulo)