Importare "pacchetti"
Ricordarsi di importare i pacchetti appropriati:
§ Tutte le classi della libreria standard sono contenute
all’interno
di pacchetti (packages)
§ Importate le classi della libreria standard specificando
il nome
del pacchetto e della classe:
§ le classi System
e String si trovano nel pacchetto
java.lang, le cui classi vengono importate
automaticamente,
in modo che non ci sia mai bisogno di importarle in modo
esplicito.
Sintassi 2.4: Importazione di una classe
da un pacchetto
import nomePacchetto.NomeClasse;
Esempio:
import java.awt.Rectangle;
Obiettivo:
Importare una classe da un pacchetto per utilizzarla
in un programma.
Collaudare una classe
in un ambiente interattivo
Collaudo
dell'invocazione
di un metodo con BlueJ
La documentazione
API
§ API: Application Programming Interface
(interfaccia per la programmazione di applicazioni)
§ Elenca le classi e i metodi della libreria Java
§ http://java.sun.com/javase/6/docs/api/index.html
La documentazione API
per la libreria standard di Java
La documentazione API
per la classe Rectangle
L'elenco riassuntivo dei metodi della
classe Rectangle
La documentazione API
del metodo translate
Riferimenti a oggetti
§ Un riferimento a un oggetto descrive la posizione dell’oggetto
in
memoria.
§ L'operatore new restituisce un
riferimento a un nuovo oggetto
§ Più variabili oggetto possono contenere riferimenti al
medesimo oggetto.
Rectangle box = new Rectangle(5, 10, 20, 30);
Rectangle box2 = box;
box2.translate(15,
25);
Rectangle box = new Rectangle();
§ Le variabili numeriche memorizzano numeri, mentre le variabili
oggetto memorizzano
riferimenti.
Varibili oggetto e variabili numeriche
Una variabile oggetto
contenente un riferimento a un oggetto
Copiatura di riferimenti a oggetti
Rectangle box = new Rectangle(5, 10,
20, 30);
Rectangle
box2 = box;
//
situazione rappresentata nella figura 21
box2.translate(15,
25);
Copiatura di riferimenti a oggetti
Copiatura di riferimenti a
oggetti
Disegnare in un componente
§ Per visualizzare qualcosa in un frame, occorre
definire una classe che estenda la classe JComponent.
§ Inserite le istruzioni di disegno all’interno del metodo
paintComponent, che viene invocato ogni volta che il
componente deve essere ridisegnato.
public class RectangleComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Istruzioni per
disegnare il componente
}
}
Disegnare in un componente
§ Per visualizzare qualcosa in un frame, occorre
definire una classe che estenda la classe JComponent.
§ Inserite le istruzioni di disegno all’interno del metodo
paintComponent, che viene invocato ogni volta che il
componente deve essere ridisegnato.
public class RectangleComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Istruzioni per
disegnare il componente
}
}
Classi Graphics e Graphics2D
§ Il metodo draw della classe Graphics2D è
in grado di
disegnare forme come rettangoli, ellissi, segmenti di retta,
poligoni e archi.
public class
RectangleComponent extends JComponent
{
public void
paintComponent(Graphics g)
{
. . .
Rectangle box = new
Rectangle(5, 10, 20, 30);
g2.draw(box);
. . .
}
}
File
RectangleComponent.java
01:
import
java.awt.Graphics;
02:
import
java.awt.Graphics2D;
03:
import
java.awt.Rectangle;
04:
import
javax.swing.JComponent;
05:
06: /**
07: Un componente che disegna due rettangoli.
08:
*/
09:
public
class RectangleComponent extends JComponent
10:
{
11:
public
void paintComponent(Graphics g)
12:
{
13:
//
Recupera Graphics2D
14:
Graphics2D
g2 = (Graphics2D) g;
15:
16: // Costruisce un rettangolo e lo disegna
17:
Rectangle
box = new Rectangle(5, 10, 20, 30);
18:
g2.draw(box);
19:
20: // Sposta il rettangolo di 15 unità verso destra
e di
21: // 25 unità verso il basso
22: box.translate(15, 25);
23:
24: // Disegna il rettangolo nella nuova posizione
25: g2.draw(box);
26: }
27: }
Disegnare rettangoli
Disegnare rettangoli
Applet
§ Gli applet sono programmi che vengono eseguiti all’interno
di
un browser web.
§ Per realizzare un applet dovete usare codice che segua
questo schema:
public class MyApplet
extends JApplet
{
public void paint(Graphics
g)
{
// Recupera il riferimento a Graphics2D
Graphics2D g2 = (Graphics2D) g;
// Istruzioni per disegnare
. . .
}
}
Applet
§ Lo schema è molto simile a quello di un componente,
con due differenze di poco conto:
1. Si deve estendere JApplet e non
JComponent
2. Le istruzioni che tracciano il disegno
devono essere inserite nel
metodo paint e non nel metodo paintComponent
§ Le vere differenze sono altre!!! (cfr. sicurezza)
§ Per eseguire un applet occorre un file HTML che
contenga un marcatore applet
§ Un file HTML può anche contenere più applet: basta
aggiungere un diverso marcatore applet per ogni applet
§ Gli applet possono essere visualizzati con un apposito
visualizzatore o con un browser abilitato al linguaggio
Java
appletviewer
RectangleApplet.html
File RectangleApplet.java
01:
import
java.awt.Graphics;
02:
import
java.awt.Graphics2D;
03:
import
java.awt.Rectangle;
04: import javax.swing.JApplet;
05:
06: /**
07: Un applet che disegna due rettangoli.
08:
*/
09:
public
class RectangleApplet extends JApplet
10:
{
11:
public
void paint(Graphics g)
12:
{
13:
//
Recupera Graphics2D
14:
Graphics2D
g2 = (Graphics2D) g;
15:
16: // Costruisce un rettangolo e lo disegna
17:
Rectangle
box = new Rectangle(5, 10, 20, 30);
18:
g2.draw(box);
19:
20: // Sposta il rettangolo di 15 unità verso destra
e di
21: // 25 unità verso il basso
22: box.translate(15, 25);
23:
24: // Disegna il rettangolo nella nuova posizione
25: g2.draw(box);
26: }
27: }
Disegnare testo
g2.drawString(“Applet”, 50, 100);
Il
punto base e la linea base
Colori
§ Colori predefiniti: Color.BLUE, Color.RED, Color.PINK ecc.
§ Specificare rosso, verde e blu tra 0 e 255:
Color magenta = new Color(255, 0, 255);
§ Impostare il colore nell’oggetto di tipo Graphics2D:
g2.setColor(magenta);
§ Il colore si usa quando si vuole disegnare o riempire una
figura:
g2.fill(rectangle);
Colori predefiniti e relativi valori RGB
Colore Descrizione Valore RGB
Color.BLACK NERO 0, 0, 0
Color.BLUE BLU 0, 0, 255
Color.CYAN AZZURRO 0, 255, 255
Color.GRAY GRIGIO 128, 128, 128
Color.DARK_GRAY GRIGIO SCURO 64, 64, 64
Color.LIGHT_GRAY GRIGIO CHIARO 192, 192, 192
Color.GREEN VERDE 0, 255, 0
Color.MAGENTA MAGENTA 255, 0, 255
Color.ORANGE ARANCIONE 255, 200, 0
Color.PINK ROSA 255, 175, 175
Color.RED ROSSO 255, 0, 0
Color.WHITE BIANCO 255, 255, 255
Color.YELLOW GIALLO 255, 255, 0
Nessun commento:
Posta un commento