I grafici Cosè un grafico? Vari tipi di grafici Come creare un grafico Esercizi.
Come Inserire Elementi Grafici In Una Finestra Windows
-
Upload
silvano-natalizi-itis-alessandro-volta-perugia -
Category
Education
-
view
2.422 -
download
1
description
Transcript of Come Inserire Elementi Grafici In Una Finestra Windows
COME INSERIRE ELEMENTI GRAFICI IN UNA FINESTRA WINDOWS
FARE UN PANNELLO CON IL PROPRIO DISEGNO
Per disegnare la propria grafica e metterla nello schermo del computer in una finestra windows (un frame), la migliore scelta è quella di realizzare un pannello con i nostri disegni.
Poi si aggiunge questo pannello al frame, allo stesso modo con cui ci si può aggiungere un bottone, una etichetta (label) o una casella di testo.
Quando questo pannello sarà mostrato, ci saranno le vostre immagini, anche le vostra animazioni.
COME SI COSTRUISCE UN PANNELLO
Per costruire un pannello: Si crea una sottoclasse di
JPanel Si implementa il metodo
paintComponent()
IL METODO PAINTCOMPONENT()
Tutto le istruzioni grafiche vanno nel corpo del metodo paintComponent()
Pensa a questo metodo come al metodo chiamato dal sistema per dire “ immagine è ora che ti ridisegni!”.
Se volete disegnare un cerchio, il metodo paintComponent() ha le istruzioni per disegnare un cerchio
Quando viene visualizzato il frame che contiene il vostro pannello, il metodo paintComponent() è chiamato e appare il vostro cerchio.
Ogniqualvolta il sistema pensa che il display necessiti di essere rinfrescato, chiamerà (eseguirà) il metodo paintComponent()
Mai chiamate questo metodo all’interno del vostro programma!
L’ARGOMENTO DI PAINTCOMPONENT(GRAPHICS G)
Il parametro di input di questo metodo è un oggetto g della classe Graphics
Questo oggetto grafico è la tela dipinta che viene mostrata nel display del computer
Questa tela (canvas) è gestita dal sistema
Si può tuttavia chiedere al sistema di rinfrescare il dipinto con l’istruzione repaint()
Repaint() fa scattare un meccanismo per il quale alla fine il sistema chiama (esegue) il metodo paintComponent()
ESEMPIO DI PANNELLO
DISPLAY DI UNA IMMAGINE JPEG
DISPLAY DI UN CERCHIO COLORATO A
CASO
DIETRO OGNI RIFERIMENTO A GRAPHICS C’È UN OGGETTO
GRAPHICS2D
Public void paintComponent(Graphics g){ }
Il parametro g è un oggetto Graphics. Ciò significa che può anche essere un oggetto di una sottoclasse di Graphics. E in effetti lo è!
L’oggetto puntato da g è un’istanza della classe Graphics2D
Che c’importa ?
Ci interessa perché ci sono cose che possiamo fare con un riferimento a Graphics2D e che invece non possiamo fare con Graphics.
IL COMPILATORE DECIDE QUALE
METODO CHIAMARE
Il compilatore decidi quale metodo eseguire sulla base del tipo di riferimento, non del tipo di oggetto effettivo puntato dal riferimento
Ad esempio Animale a=new Dog();
Non si può dire a.abbaia(); anche se sappiamo che a è un Dog. Il compilatore guarda a, vede che è un tipo Animale e trova che non esiste il metodo abbaia() in Animale.
Tuttavia possiamo creare un riferimento di tipo Dog: Dog d=(Dog) a; e d.abbaia() è OK.
LA REGOLA DA SEGUIRE PER USARE UN METODO DELLA
CLASSE GRAPHICS2D
Se c’è bisogno di usare un metodo della classe Graphics2D, non si può usare direttamente il parametro ‘g’ di paintComponent().
Si deve fare il casting del parametro ‘g’ con una nuova variabile Graphics2D
Graphics2D g2D=(Graphics2D) g;
I METODI DELLE CLASSI GRAPHICS E
GRAPHICS2D
ESEMPIO
Possiamo ottenere un evento ed ascoltarlo
Possiamo disegnare della grafica
Ma posssiamo disegnare della grafica quando otteniamo un evento ?
La risposta è SI !
TESTO DELL’ESEMPIO
Disegniamo un frame con un pannello avente un cerchio ed un bottone
Vogliamo che il cerchio cambi colore ogni volta che clicchiamo il bottone
Identifichiamo le fasi del lavoro
PRIMA FASE
Il frame è disegnato con due oggetti: il pannello disegnato e il bottone.
Si crea un listener e lo si registra al bottone
Il frame viene visualizzato e si aspetta l’input dell’utente
SECONDA FASE
L’utente clicca il bottone
Il bottone crea un evento e chiama il gestore che ascolta l’evento
TERZA FASE E QUARTA FASE
3) il gestore dell’evento chiama il metodo repaint() del frame
Il sistema chiama paintComponent() per ridisegnare il pannello
4) ed ecco che un nuovo colore è dipinto sul pannello perché di nuovo è eseguito il metodo paintComponent() con un colore casuale
ESERCITAZIONE
Fare il programma che implementa le fasi del lavoro precedentemente definite
Fare un secondo programma che modifica il precedente programma nel seguente modo: si crea un secondo bottone. Il secondo bottone deve servire per colorare il pannello di rosso.
FINE DELLA TERZA PUNTATA