Java  »  Guide  »  Guida Java 

Disegno



Capito il funzionamento della paint() siamo pronti a disegnare qualsiasi cosa su un'applet o su un generico componente.
La cosa più semplice da disegnare è la linea, per farlo usiamo il metodo drawLine() di Graphics:

drawLine(Iniziox, Inizioy, Finex, Finey)

il quale disegna una linea che parte dal punto (Iniziox, Inizioy) e arriva al punto (Finex, Finey)

Prima di usare la drawLine() capiamo come si possono cambiare i colori delle cose disegnate.
I colori si cambiano usando il metodo setColor(Color c) della classe Graphics.
Color è un'altra classe di awt che permette di definire un colore, alcuni suoi costruttori sono:

Color(float r, float g, float b), crea un colore specificando i valori RGB (Red - Green - Blue, ovvero Rosso - Verde - Blu) con dei valori compresi tra 0 e 1. Color(float r, float g, float b, float a), come il precedente, solo che permette di definire anche il valore alfa Color(int r, int g, int b) , crea un colore specificando i valori RGB (Red - Green - Blue, ovvero Rosso - Verde - Blu) con dei valori compresi tra 0 e 255. Color(int r, int g, int b, int a), come il precedente, solo che permette di definire anche il valore alfa

Alcuni colori semplici sono dati da delle costanti nella classe color:

Color.black
Color.blue
Color.cyan
Color.darkGray
Color.gray
Color.green
Color.lightGray
Color.magenta
Color.orange
Color.pink
Color.red
Color.white
Color.yellow

Nel seguente applet si disegnano alcune linee colorate.

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Button;
import java.awt.borderLayout;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.applet.*;
public class linee extends Applet
{
final int SI=14;
final int NO=0;
Button R=new Button("Rosso");
Button G=new Button("Verde");
Button B=new Button("Blu");
int r_=0;
int g_=0;
int b_=0;
int ir=0;
int ig=0;
int ib=0;
public void init()
{
setLayout(new borderLayout());
Panel np=new Panel(new GridLayout(1,3));
np.add(R);
np.add(G);
np.add(B);
R.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ir=SI;
ig=NO;
ib=NO;
repaint();
}
}
);
G.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ir=NO;
ig=SI;
ib=NO;
repaint();
}
}
);
B.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ir=NO;
ig=NO;
ib=SI;
repaint();
}
}
);
add(np,borderLayout.SOUTH);
}
public void paint(Graphics g)
{
for (int i=0;i<200;i+=10)
{
g.setColor(new Color(r_,g_,b_));
r_=r_+ir;
g_=g_+ig;
b_=b_+ib;
g.drawLine(0,i,i,200);
}
g.setColor(Color.black);
g.drawLine(0,0,0,200);
g.drawLine(0,200,200,200);
r_=0;
g_=0;
b_=0;
}
}

Chiamiamo il file linee.java e lo carichiamo con il file html seguente (linee.html):

<html>
<head>
<title>
Applet Linee (linee.class)
</title>
</head>
<body>
<APPLET code="linee.class" width=200 height=300>
</APPLET>
</body>
</html>

Ultimi articoli Java

Utilizzare OSGi in Eclipse

Articolo di introduzione all'utilizzo di OSGI in ambiente Eclipse

Jsoup: parsing semplice di HTML5 in java

Presentazione della libreria JSOUP: un parser molto semplice per...

The Cube: una demo 3D per Android con JMonkey

Un progetto di demo passo-passo per gestire gli eventi 3d di base in...

Parsing JSON semplice con google GSON

Breve ed essenziale introduzione alla libreria di google per la...

AppFuse: realizzare un'applicazione completa (implementare i servizi)

Prosegue la serie per realizzare una app completa con AppFuse....

Altri articoli

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti