Paola Magillo, Univestita' di Genova,
Corso di Programmazione II per SMID, a.a. 2006-2007.
Laboratorio 04 c:
INTERFACCIA GRAFICA PER ISTOGRAMMI
Il lavoro di questo laboratorio intende realizzare una parte di
quanto illustrato nella lezione 9a.
Da che cosa partiamo
Nei laboratori precedenti
(4a e 4b)
abbiamo ottenuto
un'interfaccia grafica che carica, visualizza, salva un istogramma,
e ha gia' predisposti tutti i menu' anche per le altre operazioni.
Tali menu' pero' non fanno ancora niente.
Attenzione: errata corrige
-
Scaricate la versione ri-corretta del file
IstoPainter.java
-- dava errore run-time a ridisegnare il pannello
dopo aver cancellato l'ultimo rettangolo, nel caso che
questo fosse proprio il rettangolo selezionato
-
Non occorre cambiare niente nei vostri file.
Che cosa dobbiamo fare
Aggiungere i comportamenti alle varie voci di menu'.
Tutti i comportamenti sono realizzati con action listener.
Gli action listener delle voci del menu' View agiscono
sul pannello che disegna l'istogramma, memorizzato nell'attributo ip.
Gli action listener delle voci del menu' Edit agiscono
sull'istogramma, memorizzato nell'attributo is.
IMPORTANTE:
Quando modifichiamo l'istogramma, il pannello di disegno "non sa"
che deve ridisegnarlo. Dobbiamo forzarlo noi chiamando
un apposito metodo: ip.repaint();
Procediamo per tappe successive.
(1) Aggiungere all'interfaccia i comportamenti "facili"
Dove per comportamenti facili intendiamo quelli che non hanno
bisogno di finestre di dialogo per chiedere i parametri:
-
voce Remove rectangle del menu' Edit
(cancella l'ultimo rettangolo dall'istogramma)
-
voci del sotto-menu' Show values del menu' View
(decidono se e come mostrare le lunghezze dei rettangoli)
Vedere lezione 9b
per la spiegazione dettagliata di come scrivere
questi listener.
(2) Aggiungere all'interfaccia i comportamenti "difficili"
Dove per comportamenti difficili intendiamo quelli che hanno
bisogno di una finestra di dialogo per chiedere i parametri:
-
voce Add rectangle del menu' Edit
(aggiunge un rettangolo all'istogramma, deve chiedere la lunghezza)
-
voce Set rectangle length del menu' Edit
(cambia la lunghezza del rettangolo selezionato,
deve chiedere la nuova lunghezza)
-
voce Default color del menu' View
(cambia il colore di default,
deve chiedere le tre componenti red, green, blue)
-
voce Rectangle Color del menu' View
(cambia il colore del rettangolo
selezionato, deve chiedere le tre componenti red, green, blue)
-
voce Scale factors del menu' Edit
(cambia i fattori di scala, deve chiedere i due nuovi
fattori sulla x e sulla y)
-
voce X axis del menu' Edit
(che decide dove disegnare l'asse x, deve chiedere la percentuale
di distanza dal bordo inferiore del pannello)
Vedere lezione 9b
per esempi di come scrivere questi listener.
(3) Aggiungere all'interfaccia i comportamenti per le voci del
menu' "Function"
Si possono fare due versioni:
-
"Facile": scrive il risultato del calcolo della media e della varianza
sulla linea messaggi del frame principale
-
"Difficile": scrive il risultato su una finestra di dialogo.
Vedere lezione 9b
per suggerimenti su come scrivere questi listener.