Paola Magillo, Univestita' di Genova,
Corso di Programmazione II per SMID, a.a. 2006-2007.
Fac-simile di Prova pratica d'esame
Il presente documento (con i link ai file java da scaricare)
si trova alla pagina
http://www.disi.unige.it/person/MagilloP/P2_SMID06/facsimile.html
Materiale di partenza
Codice java del programma grafico per gestire istogrammi
(visto nelle ultime sessioni di laboratorio):
-
IstoPainter
= classe di componente Java a cui assegnare un istogramma
e questo sara' disegnato.
-
AnyRectangle
= interfaccia che stabilisce quali funzioni
una classe deve implementare per essere accettata come rettangolo.
-
Rectangle
= classe gia' fatta che implementa l'interfaccia AnyRectangle
-
AnyIstogram
= interfaccia che stabilisce quali funzioni
una classe deve implementare per essere accettata come istogramma.
-
Istogram
= classe gia' fatta che implementa l'interfaccia AnyIstogram
-
SelectionListener.java
-
IstoDialog.java = finestra di dialogo
per chiedere all'utente i parametri delle operazioni
-
ShowIsto.java
= finestra che contiene:
- un oggetto di classe IstoPainter per disegnare un istogramma
- barra di menu' con un menu' File contenente
le voci per caricare un istogramma (che viene disegnato),
salvare l'istogramma disegnato, e uscire dal programma
- una linea di messaggi per informare l'utente delle
operazioni compiute
-
Compito da svolgere
Per svolgere gli esercizi bisogna
- modificare solo la classe ShowIsto
- usare metodi presenti nelle classi date (IstoPainter, Istogram,
Rectangle).
Fac-simile di esame 1
-
Aggiungere sulla barra un menu' "View" con due voci: "larger" e "smaller".
-
Aggiungere action listener a queste due voci in modo che
-
"larger" aumenti i fattori di scala con cui e' disegnato
l'istogramma aggiungendo 1 unita'
-
"smaller" aumenti i fattori di scala con cui e' disegnato
l'istogramma togliendo 1 unita'
SUGGERIMENTO: Bisogna agire sull'oggetto di classe IstoPainter
(contenuto nell'attributo ip).
Fac-simile di esame 2
-
Aggiungere sulla barra un menu' "Edit" con una sola voce: "invert".
-
Aggiungere action listener a questa voce che cambi la lunghezza di
di tutti i rettangoli dell'istogramma cambiandola di segno
(ricordiamo che i rettangoli dell'istogramma POSSONO avere lunghezza
negativa).
SUGGERIMENTO: Bisogna fare un ciclo sui rettangoli presenti nell'istogramma
(contenuto nell'attributo is).
Dopo aver cambiato tutte le lunghezze bisogna
ridisegnare il pannello grafico (attributo ip) invocando su di esso
il metodo repaint().
NOTA:
se occorre una variabile im cui memorizzare un rettangolo e' meglio
dichiararla come AnyRectangle piuttosto che come Rectangle.
Fac-simile di esame 3
-
Aggiungere sulla barra un menu' "Color" con tre voci:
"red", "green", "blue".
-
Aggiungere action listener a queste voci che cambi il colore
del rettangolo selezionato (se nessun rettangolo e' selezionato
non fa nulla).
SUGGERIMENTO: Bisogna agire sull'oggetto di classe IstoPainter
(contenuto nell'attributo ip).
Esistono gia' fatti i tre colori rosso, verde, blu: sono tre
costanti nella classe java Color: Color.red, Color.green e Color.blue.