Con il termine programmazione grafica in Java si intende la possibilit di disegnare forme (rettangoli, ovali, ecc.), disegnare testo, impostare i colori per il disegno, impostare il tipo di font per il testo, all'interno di un contenitore (tipicamente un JPanel). Le classi usate a tale scopo sono: Graphics, Color e Font; tutte appartengono al package java.awt.
Object
Color
Font
Graphics
Per disegnare in un panello necessario: 1. derivare una classe da JPanel; 2. ridefinire il metodo paintComponent di tale classe. Il metodo paintComponent definito nella classe Jcomponent con la seguente firma:
In Java tutti i disegni sono essere gestiti dal sistema attraverso un oggetto Graphics, che il programmatore non manipola direttamente. Il metodo paintComponent viene chiamato automaticamente quando una parte di un componente deve essere ridisegnata; il programmatore non deve interferire con questo processo automatico. Il metodo paintComponent, quando ridefinito nella sottoclasse, deve sempre contenere come prima istruzione la chiamata al metodo paintComponent della superclasse. Per esempio: public void paintComponent(Graphics g) { super.paintComponent(g); //segue il codice per il disegno } Il chiamante pu ordinare di ridisegnare il pannello, o pi in generale un componente, utilizzando il metodo repaint della classe Component di java.awt:
public void drawLine(int x_inizio, int y_inizio, int x_fine, int y_fine) Disegna una linea che va dal punto (x_inizio,y_inizio) al punto (x_fine,y_fine), utilizzando il colore correntemente impostato.
Disegna un rettangolo di larghezza e altezza specificate e il cui vertice superiore sinistro coincide con il punto di coordinate (x,y), utilizzando il colore correntemente impostato.
int y,
int larghezza,
int altezza,
int
Disegna un rettangolo di larghezza e altezza specificate e il cui vertice superiore sinistro coincide con il punto di coordinate (x,y), utilizzando il colore correntemente impostato. Il rettangolo ha gli angoli arrotondati. I parametri larghArea e altArea definiscono larghezza e altezza dell'area con gli angoli arrotondati: pi grande quest'area, tanto pi gli spigoli sono arrotondati.
Disegna l'ovale inscritto nel rettangolo di larghezza e altezza specificate e il cui vertice superiore sinistro coincide con il punto di coordinate (x,y), utilizzando il colore correntemente impostato.
Disegna la stringa str a partire dal punto di coordinate (x,y), utilizzando il colore correntemente impostato.
Disegna un rettangolo di larghezza e altezza specificate e il cui vertice superiore sinistro coincide con il punto di coordinate (x,y). Il rettangolo viene riempito con il colore correntemente impostato.
public void fillRoundRect(int x, int y, int larghezza, int altezza, int larghArea, int altArea)
Disegna un rettangolo di larghezza e altezza specificate e il cui vertice superiore sinistro coincide con il punto di coordinate (x,y). Il rettangolo viene riempito con il colore correntemente impostato e ha gli angoli arrotondati. I parametri larghArea e altArea definiscono larghezza e altezza dell'area con gli angoli arrotondati: pi grande quest'area, tanto pi gli spigoli sono arrotondati.
Disegna l'ovale inscritto nel rettangolo di larghezza e altezza specificate e il cui vertice superiore sinistro coincide con il punto di coordinate (x,y). L'ovale viene riempito con il colore correntemente impostato.
@SuppressWarnings("serial") public class PaintFrame extends JFrame { public static final int LARGHEZZA= 300; public static final int ALTEZZA= 300; public PaintFrame() { super("Rettangolo"); setSize(LARGHEZZA,ALTEZZA); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = getContentPane(); PaintArea panel= new PaintArea(); panel.setBackground(Color.white); contentPane.add(panel,BorderLayout.CENTER); } class PaintArea extends JPanel { public static final int X= public static final int Y= public static final int W= public static final int H=
public static void main(String args[]) { PaintFrame frame= new PaintFrame(); frame.setVisible(true); }
Nota: nelle versioni del jdk precedenti la 1.4, le costanti colore sono scritte in lettere minuscole; a partire dalla versione 1.4 possono essere scritte sia in caratteri minuscoli che maiuscoli.
La classe Color permette, inoltre, di definire colori personalizzati indicando la quantit delle componenti rosso, verde e blu presenti nel colore. Per creare un colore personalizzato si usa il costruttore:
dove rosso, verde e blu possono assumere valori interi compresi tra 0 e 255. Ad esempio Color verde_spento= new Color(0,128, 128);
Il nome pu essere il nome di un carattere tipografico o il nome di un carattere logico. Infatti, poich non esiste un modo assoluto per sapere quali caratteri sono stati installati dallutente, awt definisce cinque nomi di font logici: SansSerif, Serif, Monospaced, Dialog, DialogInput, che sono sempre mappati su font effettivamente esistenti sulla macchina client. Ad esempio, in un sistema Windows, SansSerif mappato come Arial. Lo stile pu assumere uno dei seguenti valori: Font.PLAIN (normale), Font.BOLD (grassetto), Font.ITALIC (corsivo), Font.BOLD + Font.ITALIC (grassetto e corsivo). Per creare un oggetto della classe Font con carattere Helvetica, stile grassetto e dimensione 14 punti si scrive: Font helvb14= new Font(Helvetica,Font.BOLD,14); 2. Impostare il testo con il font scelto Si usa il metodo setFont della classe Graphics. Il font impostato sar usato per tutte le successive operazioni di disegno di testo. Ad esempio: g.setFont(helvb14);
Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.