Paola Magillo, Univestita' di Genova, Corso di Programmazione II per SMID, a.a. 2008-2009.

Laboratorio 05:

MENU' E FINESTRE DI DIALOGO

I due esercizi si possono svolgere in qualsiasi ordine: prima 1 e poi 2 o viceversa.

1) Menu'

Realizzare un'applicazione che puo' mostrare alternativamente un certo numero di immagini, tutte della stessa grandezza. L'immagine da mostrare viene scelta da menu'.

L'interfaccia consiste in una finestra che ha una barra di menu' con un menu' le cui voci corrispondono ai nomi di alcuni file immagine. Per esempio i seguenti file sono immagini tutte di dimensione 400 x 300 pixel:

La restante parte della finestra contiene un'etichetta (JLabel) con disegnata l'immagine.


Qui dovremo caricare tutte le immagini (memorizandole per esempio in un array).
A seconda del bisogno poi cambiare l'immagine presente nell'etichetta, usare per questo la funzione setIcon(ImageIcon) della classe JLabel.


Provare a visualizzare anche immagini di dimensioni differenti, mettendo l'etichetta dentro un pannello a barre di scorrimento (JScrollPane).

2) Finestre di dialogo

Scrivere un'applicazione che consiste di: una finestra principale che chiede, mediante due campi di testo, le dimensioni da dare ad un rettangolo.
Se le stringhe digitate dall'utente non sono numeri, oppure sono numeri negativi, viene mostrata una finestra di dialogo con appropriato messaggio di errore.


Bisogna stabilire quali dispositivi devono essere presenti nella finestra principale e con quale layout.
Una scelta possibile (ma siete incoraggiati a progettare la vostra) puo' essere la seguente:

+-------------------------------+
| Dimensiona il tuo rettangolo  |
+-------------+-----------------+
| Larghezza:  | t1              |
+-------------+-----------------+                      
| Altezza:    | t2              | 
+-------------+-----------------+
dove t1 e t2 sono campi di testo, gli altri tre elementi sono etichette. La finestra usa un border layout con a nord l'etichetta "Dimensiona il tuo rettangolo" e al centro un pannello intermedio con griglia 2x2 contenente gli altri quattro elementi.

Invece, fare in modo che in caso di errore si apra una finestra di dialogo contenente il messaggio di errore e un bottone "ok" per chiudere la finestra.
Suggerimento: potete usare "showMessageDialog" (vedere lezione 9).