Documento guida - Dipartimento di Informatica e Sistemistica

SESTA ESERCITAZIONE DI LABORATORIO
Informatica Grafica – Ingegneria Edile Architettura
25/2/2002 – a.a. 2001/2002
Riferimento: Horstmann, “Concetti di Informatica e fondamenti di Java 2”, ed. Apogeo, cifr. §4.
Grafica ed applet in Java
Per realizzare semplici programmi grafici è possibile ridefinire il metodo
public void paint (Graphics g)
invocato automaticamente in fase di costruzione di una applet. E’ opportuno eseguire un casting esplicito del parametro g di tipo
Graphics ed assegnarlo ad un nuovo oggetto di tipo Graphics2D in modo tale da poter lavorare su un oggetto Graphics2D.
L’implementazione del metodo paint per realizzare programmi grafici con le applet è oggetto dei prossimi esercizi.
ESERCIZIO 1: Scrivere un’applet per disegnare in modo semplificato un albero utilizzando un ellisse ed un
rettangolo, come mostrato in figura.
Si ricorda che per disegnare un’ellisse o un rettangolo sono disponibili le seguenti classi
public static class Ellipse2D.Double
public static class Ellipse2D.Float
public static class Rectangle2D.Double
public static class Rectangle2D.Float
interne alla classe Ellipse2D contenuta nel pacchetto java.awt.geom. Quest’ultimo dovrà quindi essere importato nel sorgente della
applet. Per disegnare un rettangolo è anche disponibile la classe:
public class Rectangle
direttamente nel pacchetto java.awt che dovrà quindi essere importato, se si vorrà far uso della suddetta classe. Inoltre per disegnare
una figura geometrica specificata da un oggetto Graphics2D si può usare il metodo
abstract void draw(Shape s)
dell classe Graphics2D dove il tipo Shape indica una forma generica, per esempio un oggetto Graphics2D.
ESERCIZIO 2: Scrivere un’applet per disegnare due alberi ed una casa semplificati utilizzando ellissi,
rettangoli e poligoni, come mostrato in figura.
E’ possibile rappresentare poligoni tramite la classe
public class Polygon
nel pacchetto java.awt. Un poligono è specificato dalle coordinate (xi, yi) dei suoi veritici. Per costruire un oggetto poligono si può
partire da un poligono senza vertici utilizzando il relativo costruttore senza argomenti. Dato un poligono con 0 o più vertici, è
possibile aggiungere al poligono un nuovo vertice tramite il metodo
public void addPoint(int x, int y)
della classe Polygon, dove x ed y sono le coordinate del nuovo vertice.
Si ricorda inoltre che per impostare un colore si può utilizzare il metodo
public abstract void setColor(Color c)
sulla classe Graphics2D, passando come argomento un oggetto c di tipo Color. Questo può essere una tra le costanti predefinite della
classe Color o un oggetto precedentemente istanziato specificando le componenti RGB.
I/O da finestra grafica
ESERCIZIO 3: Modificare la soluzione dell’esercizio precedente in modo tale che le figure disegnate abbiano lo stesso colore e
che questo possa essere specificatola un utente tramite I/O interattivo da finestra grafica fornendo i valori delle 3 componenti
RGB. E’ inoltre richiesto di verificare che i valori introdotti per le tre componenti siano numeri decimali compresi tra 0 ed 1,
affinché non sollevino eccezioni durante l’esecuzione delle applet. Valori scorretti vanno annullati ponendo la rispettiva
componente di colore a zero, stampando un opportuno messaggio di errore.
Si ricorda che per stampare messaggi e raccogliere input tramite finestra grafica si può implementare il metodo
public void init()
utilizzando i metodi
public static String showInputDialog(Object message)
public static void showMessageDialog(Component parentComponent,Object message)
della classe JOptionComponent nel pacchetto javax.swing, dove il parametro parentComponent può essere posto al valore null ed il
parametro message può essere una stringa.