Paola Magillo, Univestita' di Genova, Corso di Interfacce Utente per Informatica, a.a. 2009-2010.

LABORATORIO - INTERFACCE GRAFICHE IN JAVA

Contesto generale

L'obiettivo e' realizzare in Java un (molto rudimentale) editor di testi. Il programma gestisce file di testo non formattato (formato .txt) e fornisce le seguenti funzionalita':

Procederemo per gradi...

Grado 1

Realizzare un'interfaccia che presenta un'area di testo centrale (in pannello con barre di scorrimento) in cui l'utente puo' scrivere, e una barra di menu' con due menu':

In questa versione non vengono ancora gestiti gli eventi, a parte quello di uscita dal programma (voce "quit").

Grado 2

Aggiungere la gestione degli eventi per le voci del menu' "View". Usare sull'area di testo le funzioni getFont per prendere la font corrente, e setFont per assegnare una nuova font con diversa dimensione.

Grado 3

Aggiungere la gestione degli eventi per le voci del menu' "File". Qui sara' necessario usare un file chooser.

Attenzione: prima di complicarvi la viya lettete adesso il grado 4!

Grado 4

Siccome assumiamo di editare un solo file alla volta, per esempio aprire un nuovo file implica la chiusura di quello corrente. Aggiungere opportune finestre di dialogo che avvertano l'utente se sta rischiando di perdere le modifiche fatte al file corrente.
Nota: per l'usabilita' e' bene mettere questi avvertimenti prima che l'utente interagisca col file system alla ricerca del file da aprire.

Avrete bisogno di una variabile booleana che ricordi se il file e' stato editato dall'ultima volta in cui e' stato caricato da o salvato su file.
Avrete bisogno di associare all'area di testo una callback che in seguito a battiture di tasti da parte dell'utente metta a true la variabile di cui sopra. Ricordatevi di rimetterla a false quando aprite un nuovo file e quando salvate.

A questo punto abbiamo gia' un programma completo, ma possiamo andare avanti...

Grado 5

Aggiungere una toolbar con bottoni che replicano le funzioni presenti nelle voci di menu'. La toolbar avra' un separatore per separare i bottoni-replica delle operazioni sui file dai bottoni-replica delle operazioni di zoom.

Inizialmente sui bottoni potete mettere delle stringhe, poi sostituirle con icone opportune.

Grado 6

Facoltativo. Solo per chi non ne ha abbastanza...

Gestire piu' file aperti contemporaneamente (potete fissare un massimo, per esempio 5).

Potete gestirli con pannello a schedario (JTabbedPane), dove ogni file sara' in una scheda col suo nome sull'etichetta, oppure potete gestirli con finestre interne (JDesktopPane e JInternalFrame).