venerdì 23 maggio 2014


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