Obiettivo dell'esercitazione è la creazione di un client grafico per l'applicazione "Giunte", oggetto della precedente esercitazione.
L'esercitazione consiste nel completare il codice fornito, secondo specifiche sotto riportate.
Il codice da completare, disponibile qui, è strutturato in due package:giunte: le classi di questo package realizzano il diagramma concettuale dell'applicazione (sono le classi sviluppate nella precedente esercitazione)
gui: contiene le classi per la gestione delle interfacce grafiche (finestre e rispettivi listener), oltre alle classi:
gui.Modello che è utilizzata per popolare il diagramma concettuale, permettendo di aggiungervi nuovi oggetti. (Cliccare qui per il JavaDoc).
gui.Operazioni che implementa l'operazione richiesta nella precedente esercitazione:
Il Ministero degli Interni vuole effettuare, come cliente della nostra applicazione, dei controlli sulle giunte. A questo scopo, prevede di realizzare un metodo che, data una regione, se tutte le persone che appartengono alla giunta di quella regione sono dello stesso partito, restituisce quel partito, altrimenti segnala opportunamente che tale condizione non sussiste.
La finestra principale (classe gui.PrincipaleFrame)
è mostrata in Figura 1. Contiene diversi bottoni, ognuno dei quali
permette di accedere alle diverse funzionalità dell'applicazione:
A ciascun pulsante della finestra principale è associata una classe che implementa la finestra per l'inserimento degli oggetti. Così, al pulsante "Aggiungi persona all'archivio" è associata la classe gui.AggiungiPersonaFrame, che definisce l'aspetto della finestra per l'inserimento di una nuova persona. A tale classe, a sua volta, ne è associata un'altra, in cui viene definito il Listener che realizza le operazioni. Ad esempio, alla classe gui.AggiungiPersonaFrame è associata la classe gui.AggiungiPersonaListener. Il metodo main() dell'applicazione è definito nella classe gui.Application, ed inoltre la classe gui.Utility contiene alcune funzioni ausiliarie al disegno della finestra. La classe gui.Nominativo è una classe ausiliaria, usata per supportare la memorizzazione degli oggetti di classe Persona nelle mappe. Si richiede di completare le seguenti classi:
|
Figura 1 |
Figura 2 |
java -version
),
scaricare la versione opportuna.
Per eseguire il codice, fare doppio click sul file oppure eseguire
(X
dev'essere rimpiazzato da 5
o 6
, a seconda della versione JVM):
java -jar soluzione-1.X.jar