La API Java2D nos permite tratar figuras, imagenes y texto en dos dimensiones, las posibilidades son casi ilimitadas, desde dibujar figuras basicas (cuadrados, lineas, texto), manipulacion de imagenes e incluso crear animaciones o presentaciones multimedia.
java.awt.Graphics2D: API de java que se extiene de AWT.Graphics
Comenzaremos con una aplicacion sencilla, para esto creamos un nuevo proyecto en Netbeans, "Java2d_Rectangulo" o el nombre que desees, despues añade un JFrame y para poder trabajar con java2d lo primero que debemos hacer es sobreescribir el metodo PAINT, el codigo que debes añadir al Jframe es:
01 @Override
02 public void paint (Graphics g) {
03 //creamos el objeto a dibujar
04 Rectangle2D rectangulo;
05 //pasamos el objeto Graphics a Graphics2D (upcasting)
06 Graphics2D g2 = (Graphics2D)g;
07
08 /* Rectangulo simple con valores default de java2d */
09 rectangulo = new Rectangle2D.Float(50, 50, 300, 25);
10 g2.draw(rectangulo);
11
12 /* Rectangulo con borde a color */
13 g2.setColor(Color.GREEN);
14 rectangulo = new Rectangle2D.Float(50, 100, 300, 25);
15 g2.draw(rectangulo);
16
17 /* Rectangulo con borde a color y tipo de linea mas gruesa */
18 g2.setColor(Color.RED);
19 rectangulo = new Rectangle2D.Float(50, 150, 300, 25);
20 Stroke pincel = new BasicStroke(5.0f, BasicStroke.CAP_ROUND,
21 BasicStroke.JOIN_MITER);
22 g2.setStroke(pincel);
23 g2.draw(rectangulo);
24
25 /* Rectangulo con relleno */
26 g2.setColor(Color.DARK_GRAY);
27 rectangulo = new Rectangle2D.Float(50, 200, 300, 25);
28 g2.fill(rectangulo);
29
30 /* Rectangulo con canal alfa */
31 // dibujamos un rectangulo de color amarillo y encima otro de color rojo
32 // sin transparencia
33 g2.setColor(Color.YELLOW);
34 rectangulo = new Rectangle2D.Float(150, 240, 100, 50);
35 g2.fill(rectangulo);
36 g2.setColor(Color.BLACK);
37 rectangulo = new Rectangle2D.Float(150, 240, 100, 50);
38 g2.draw(rectangulo);
39 g2.setColor(Color.RED);
40 rectangulo = new Rectangle2D.Float(50, 250, 300, 25);
41 g2.fill(rectangulo);
42
43 //aplicando transparencia
44 g2.setColor(Color.YELLOW);
45 rectangulo = new Rectangle2D.Float(150, 310, 100, 50);
46 g2.fill(rectangulo);
47 g2.setColor(Color.BLACK);
48 rectangulo = new Rectangle2D.Float(150, 310, 100, 50);
49 g2.draw(rectangulo);
50 g2.setColor(Color.RED);
51 rectangulo = new Rectangle2D.Float(50, 320, 300, 25);
52 AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f);
53 g2.setComposite(ac);
54 g2.fill(rectangulo);
55
56 /* por ultimo dibujamos un texto */
57 g2.setColor(Color.GREEN);
58 g2.setFont(new Font("Arial", Font.ITALIC, 24));
59 g2.drawString("Java2D by Mouse", 50, 440);
60 } Las librerias que hacemos uso son:
01 import java.awt.*;
02 import java.awt.geom.*;
03 import java.awt.image.*;
Como se observa en el codigo, sobreescribimos el metodo
PAINT con la instruccion
@Override, despues pasamos el objeto
Graphics a Graphics2d, y ya podemos comenzar a dibujar los objetos que deseemos.
La imagen de arriba, nos muestra el resultado que obtendremos, para esto hicimos uso del objeto Rectangle2D que nos permite dibujar rectangulos.
Parametros del objeto
Rectangle2D(x1,y1,x2,y2)
x1,y1 : especifican la posicion de la esquina Sup. Izq.
x2,y2 : representan el ancho y largo
Tambien haremos uso de los metodos:
draw(): metodo que pinta la figura que se le pasa como parametro
fill(): metod igual al amterior, pero este pinta el relleno
setColor(): nos permite colocar un color a los graficoscon
Stroke : Estable un pincel con el cual pintaremos el contorno de los objetos.
AlphaComposite: Gestiona las transparencias en figuras, texto e imagenes.
drawString(): nos permite dibujar letras
estos objetos y metodos y muchos mas, los veremos en proximos tutoriales.
[actualizado]
Me olvide el codigo fuente ;)
aqui esta