Progettazione del Software - A.A. 2008/2009

Esercitazione 5

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:

Il codice incompleto è eseguibile, benché alcune funzionalità non siano presenti.

La finestra principale (classe gui.PrincipaleFrame) è mostrata in Figura 1. Contiene diversi bottoni, ognuno dei quali permette di accedere alle diverse funzionalità dell'applicazione:
  1. Aggiungi Persona all'archivio
  2. Iscrivi persone a partiti
  3. Aggiungi Partito all'archivio
  4. Aggiungi persona a giunta regionale
  5. Aggiungi giunta regionale
Una volta completato il codice, cliccando sul primo bottone deve essere visualizzata la finestra "Aggiungi Persona" che permette di inserire una nuova persona in archivio (cf. Figura 2). Analogamente, cliccando sugli altri pulsanti, dovranno comparire altre finestre che permettono di inserire i rispettivi oggetti (secondo la semantica autoesplicativa riportata sui pulsanti).

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:
  • gui.AggiungiPartitoFrame
  • gui.AggiungiPartitoListener
  • gui.AggiungiPersonaGiuntaFrame
  • gui.InfoGiuntaFrame
  • gui.InfoPersonaFrame
  • gui.Modello
  • gui.Operazioni
NOTA: la comprensione dell'applicazione a partire dal codice fa parte dell'esercizio.

 


Figura 1

Figura 2

L'applicazione finale completa, eseguibile, è disponibile come file jar (java precompilato) in due versioni:

Essa rappresenta il prodotto finale richiesto.

Dopo aver verificato la Java Virtual Machine installata sulla propria macchina (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