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)