Prova di laboratorio del 23/06/2010

Prova di laboratorio del 23/06/2010
Istruzioni
La prova di laboratorio consiste nel realizzare una applicazione Java funzionante che soddisfa le specifiche. Tale
prova permette di acquisire fino a 15 punti che si andranno a sommare a quelli della prova scritta (fino a 18 punti) al
fine di ottenere il voto finale. La prova di laboratorio viene considerata superata se si raggiunge un punteggio
minimo di 8 punti.
Le specifiche dell’applicazione vengono fornite sottoforma di attività sequenziali che comportano l’implementazione
di funzioni e comportamenti che l’applicazione deve avere e che devono essere svolte necessariamente nell’ordine
con cui vengono presentate, pena la non validità della prova. Ciò vuol dire che prima di poter seguire le istruzioni
dell’attività n-esima dovranno essere state svolte tutte le attività precedenti (fino alla n-1). Non è consentito saltare
attività intermedie.
Le attività sono suddivise in tre macro aree, ciascuna delle quali permette di raggiungere un ben definito punteggio:
1) Funzionalità di base: permette di acquisire fino a 8 punti. Devono essere necessariamente implementate
per poter superare la prova.
2) Funzionalità avanzate: permette di acquisire ulteriori 4 punti, da cumulare ai precedenti al fine di
raggiungere un punteggio complessivo fino a 12 punti. Può essere svolta solo se tutte le attività relative alle
funzionalità di base sono state realizzate.
3) Funzionalità opzionali: : permette di acquisire altri 3 punti che, cumulati con i precedenti, da la possibilità di
arrivare ad un punteggio finale di 15 punti. Può essere svolta solo se tutte le attività relative alle funzionalità
di base e alle funzionalità avanzate sono state realizzate.
I contributi saranno valutati in base ai seguenti criteri:
1) Compilazione del codice: in caso di errori di compilazione la prova è considerata non valida.
2) Per ogni attività realizzata si valuterà la correttezza semantica della soluzione ed il corretto utilizzo delle
strutture del linguaggio Java.
Esercizio
Si vuole realizzare una semplice interfaccia grafica in Java basata su Swing in base alle attività descritte di seguito.
L’applicazione dovrà contenere un unico metodo main che sarà utilizzato, in sede di valutazione, per avviare
l’applicazione. Al fine di agevolare lo sviluppo dell’applicazione vengono fornite due classi di supporto che possono
essere modificate in modo da rispondere alle specifiche richieste. In particolare la classe MainApplicazione,
contenente il metodo main(..), si occupa di visualizzare una finestra vuota mentre la classe PannelloApplicazione
rappresenta il pannello interno (Content Pane) della finestra, all’interno della quale vanno inseriti i componenti
grafici ed il disegno geometrico. L’utilizzo di tali classi è opzionale.
A) Funzionalità di base (fino ad 8 punti)
Ordine Descrizione attività
1
2
3
PUNTI
Realizzare, mediante l’utilizzo di Graphics e 3
Graphics2D, una finestra JFrame di dimensioni
800 pixel per 800 pixel al cui interno viene
visualizzato il disegno geometrico rappresentato
in figura e le cui dimensioni sono:
 raggio del cerchio: 150 pixel
 lato del quadrato esterno: 400 pixel
 spessore linee cerchio e diagolali: 2 pixel
La finestra essere progettata in modo che
premendo il pulsante di chiusura della finestra
venga chiusa l’intera applicazione.
Aggiungere nella finestra i componenti di seguito riportati, in modo che compaiano nella 3
parte alta della finestra, disposti uno di seguito all’altro da sinistra a destra:
 una etichetta con la scritta “numero di repaint”
 una casella di testo di dimensioni 25 pixel (altezza) 100 pixel (larghezza)
 un pulsante alla finestra con l’etichetta “aggiorna”
Modificare la finestra (introducendo se necessario campi , metodi ecc …) in modo da 2
visualizzare all’interno della casella di testo il numero di volte che è stato eseguito il
ridisegno dell’applicazione.
In particolare ogni volta che la finestra viene disegnata deve essere aggiornato il valore
visualizzato nella casella di testo incrementandolo di uno
B) Funzionalità aggiuntive (fino a 4 punti)
4
5
Modificare l’applicazione in modo che alla pressione del pulsante “aggiorna” venga 2
effettuato il repaint della finestra
Modificare le proprie classi introducendo i metodi
2
 public int numeroClick() che restituisce il numero di click fatti sul
pulsante “aggiorna”.
 public int numeroRepaint() che restituisce il repaint fatti
dall’applicazione.
NB: il numero di click del pulsante non corrisponde necessariamente al numero di repaint
ed è quindi necessario gestire separatamente le due informazioni
C) Funzionalità opzionali (fino a 3 punti)
6
7
Progettare una classe Star extends Polygon che disegna una stella con “n” raggi, con raggio 2
minimo “min” e raggio massimo “max”. I valori n, min e max vengono passati nel
costruttore.
Utilizzando la classe Star definita sopra, disegnare una stella di colore giallo a 5 punte e 1
raggio min 150 e raggio massimo 200 sopra la figura geometrica del punto (1)