NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Guida Java 2D - Capitolo 19: Il disegno avanzato in Java2D: il tratto con Stroke e BasicStroke.

 

L'interfaccia Stroke e le classi che la implementano ci permettono di impostare diversi stili di pennello.

 

Attualmente, una sola classe di Java2D implementa, in maniera nativa, Stroke: la classe BasicStroke.

 

Costruttori di BasicStroke:

  • BasicStroke();
  • BasicStroke(float width);
  • BasicStroke(float width, int cap, int join);
  • BasicStroke(float width, int cap, int join, float miterlimit);
  • BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase);

 

 

 

La tabella riportata qui sotto descrive i vari parametri utilizzati dai costruttori:

width Lo spessore del tratto, espresso mediante valori float. Deve avere valore maggiore o uguale a 0.0f.
cap Definisce che aspetto dare alle estremità di un segmento. I possibili valori sono espressi mediante costanti predefinite di BasicStroke e possono essere: CAP_BUTT, CAP_ROUND o CAP_SQUARE.
join Definisce che aspetto dare al punto di incontro di due segmenti, qualora se ne presenti l'occasione. I possibili valori sono espressi mediante costanti predefinite di BasicStroke e possono essere: JOIN_ROUND, JOIN_BEVEL o JOIN_MITER.
miterlimit Il limite da utilizzare per 'tagliare' (trim) un join di tipo miter (JOIN_MITER). Deve avere valore maggiore di 1.
dash Array di valori che rappresentano il pattern dei punti.
dash_phase Indica un offset a partire dal quale iniziare a disegnare il pattern dei punti.

 

Per impostare lo stile del pennello per il contesto grafico, utilizzare il metodo di Graphics2D:

setStroke(Stroke s)   :   void

dove il parametro s identifica, appunto, un oggetto di tipo Stroke.

 

Per scoprire qual è lo stile attualmente in uso dal contesto grafico, possiamo utilizzare il metodo di Graphics2D:

getStroke()   :   abstract Stroke

che restituisce, appunto, uno Stroke.

 

Esempio di definizione ed utilizzo di un BasicStroke:

private BasicStroke s = new BasicStroke(5.0f);

// ...

public void paintComponent(Graphics g)

{

super.paintComponent(g);

Graphics2D g2 = (Graphics2D)g;

// ...

g2.setStroke(s);

// ...

}

 

 

 
Vai all'inizio della pagina