Come Inserire Elementi Grafici In Una Finestra Windows

19
COME INSERIRE ELEMENTI GRAFICI IN UNA FINESTRA WINDOWS

description

come inserire elementi grafici in un frame java

Transcript of Come Inserire Elementi Grafici In Una Finestra Windows

Page 1: Come Inserire Elementi Grafici In Una Finestra Windows

COME INSERIRE ELEMENTI GRAFICI IN UNA FINESTRA WINDOWS

Page 2: 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.

Page 3: Come Inserire Elementi Grafici In Una Finestra Windows

COME SI COSTRUISCE UN PANNELLO

Per costruire un pannello: Si crea una sottoclasse di

JPanel Si implementa il metodo

paintComponent()

Page 4: Come Inserire Elementi Grafici In Una Finestra Windows

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!

Page 5: Come Inserire Elementi Grafici In Una Finestra Windows

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()

Page 6: Come Inserire Elementi Grafici In Una Finestra Windows

ESEMPIO DI PANNELLO

Page 7: Come Inserire Elementi Grafici In Una Finestra Windows

DISPLAY DI UNA IMMAGINE JPEG

Page 8: Come Inserire Elementi Grafici In Una Finestra Windows

DISPLAY DI UN CERCHIO COLORATO A

CASO

Page 9: Come Inserire Elementi Grafici In Una Finestra Windows

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.

Page 10: Come Inserire Elementi Grafici In Una Finestra Windows

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.

Page 11: Come Inserire Elementi Grafici In Una Finestra Windows

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;

Page 12: Come Inserire Elementi Grafici In Una Finestra Windows

I METODI DELLE CLASSI GRAPHICS E

GRAPHICS2D

Page 13: Come Inserire Elementi Grafici In Una Finestra Windows

ESEMPIO

Possiamo ottenere un evento ed ascoltarlo

Possiamo disegnare della grafica

Ma posssiamo disegnare della grafica quando otteniamo un evento ?

La risposta è SI !

Page 14: Come Inserire Elementi Grafici In Una Finestra Windows

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

Page 15: Come Inserire Elementi Grafici In Una Finestra Windows

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

Page 16: Come Inserire Elementi Grafici In Una Finestra Windows

SECONDA FASE

L’utente clicca il bottone

Il bottone crea un evento e chiama il gestore che ascolta l’evento

Page 17: Come Inserire Elementi Grafici In Una Finestra Windows

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

Page 18: Come Inserire Elementi Grafici In Una Finestra Windows

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.

Page 19: Come Inserire Elementi Grafici In Una Finestra Windows

FINE DELLA TERZA PUNTATA