Está en la página 1de 9

Curso de Programación Programación Gráfica

java.awt.Graphics2D
– Utiliza el mismo modelo empleado por Graphics
– Para usarlo…

public void paint(Graphics g)


{
Graphics2D g2 = (Graphics2D) g;
...
}

java.awt.geom – formas primitivas


Arc2D Ellipse2D QuadCurve2D
Area GeneralPath Rectangle2D
CubicCurve2D Line2D RectangularShape
Dimension2D Point2D RoundRectangle2D

java.awt.Graphics2D

– API Extendido para manejo de textos, imágenes, colores, formas e


impresión

– Manejo de características avanzadas como


• Transparencia
• Antialiasing java.awt
• Canales Alpha java.awt.geom
• Composición java.awt.font
• Transformación java.awt.color
java.awt.image
java.awt.image.renderable
java.awt.print

Programación Grafica en JAVA2D 1


Curso de Programación Programación Gráfica

Ejemplo
– Uso de gráficos primitivos (En su Forma Simple)

public void paint(Graphics g) {

Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(2.0f));
g2.draw(new Rectangle2D.Double(5, 5, 50, 20));
g2.setStroke(new BasicStroke(4.0f));
g2.draw(new RoundRectangle2D.Double(5, 30, 50, 20, 5, 5));
g2.setStroke(new BasicStroke(2.0f));
g2.draw(new Arc2D.Double(5, 55, 50, 20, 90, 135, Arc2D.OPEN));
g2.draw(new Ellipse2D.Double(5, 80, 50, 20));

A continuación procedemos al diseño de una aplicación donde podemos observar


los primitivos gráficos en Dos Dimensiones en JAVA.

Cabe recalcar que no están todos los métodos, usted tendrá que la investigación
constante que usted desarrollara y fortalecimiento de sus conocimientos, por tal
motivo, ya puede iniciar en este sentido las practicas e indagaciones del resto de
métodos de Java para graficas de dos dimensiones.

Programación Grafica en JAVA2D 2


Curso de Programación Programación Gráfica

Ejemplo #2
/* * Creado el miercoles 18/Abril/2007 * */

/** @Giovanni.Saenz@fec.uni.edu.ni **/

// Manejo de Figuras de JAVA2D.java de una forma simple.


// Demostración de algunas figuras de Java2D.
import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;

public class Grafica2D extends JFrame {

// establecer cadena de barra de título y dimensiones de la ventana


public Grafica2D()
{
super( "Dibujo de figuras en 2D" );
setSize( 900, 600 );
setVisible( true );
}

// dibujar figuras con la API Java2D


public void paint( Graphics g )
{
int x=10, y=30;
int ANCHO=50,ALTO=30;

super.paint( g ); // llamar al método paint de la superclase

Graphics2D g2d = ( Graphics2D ) g; // convertir g a Graphics2D

/********************* Rectangulo Sin Relleno. ************************/


// Dibujar un Rectangulo de color Rojo y con un grosor de borde de //diez
pixeles.
g2d.setPaint(Color.RED);
g2d.setFont( new Font( "Monospaced", Font.ITALIC, 15 ) );
g2d.setStroke(new BasicStroke(10.0f));
g2d.draw(new Rectangle2D.Double(x, y, ANCHO, ALTO));
g2d.drawString( " Dibujo de RECTANGULO 2D " , 70, 45 );

Programación Grafica en JAVA2D 3


Curso de Programación Programación Gráfica

/********************* Rectangulo Con Relleno. ************************/


//Dibujar un Rectangulo de color Degradado y con un grosor de borde //de
//diez pixeles.
g2d.setPaint(new GradientPaint( x+400, y, Color.BLUE, x+435,
y+70,Color.YELLOW, true ));
g2d.setFont( new Font( "Serif", Font.BOLD , 15 ) );
g2d.fill(new Rectangle2D.Double(x+400, y, ANCHO, ALTO));
g2d.drawString( " Dibujo de RECTANGULO 2D " , x+470, y+15 );

//Dibujar un Rectangulo con borde redondeado (Sin Relleno)


//de color Magenta y con un grosor de borde de cuatro pixeles.
g2d.setPaint(Color.MAGENTA);
g2d.setStroke(new BasicStroke(4.0f));
g2d.draw(new RoundRectangle2D.Double(x, y+70, ANCHO, ALTO, 20,
20));
g2d.drawString( " Dibujo de RECTANGULO REDONDEADO 2D " , 70, 115
);

//Dibujar un Rectángulo con borde redondeado (Con Relleno) de color


//Degradado
//y con un grosor de borde de cuatro pixeles.
g2d.setPaint(new GradientPaint( x+400, y+70, Color.RED, x+435,
y+85,Color.ORANGE , true ));
g2d.fill(new RoundRectangle2D.Double(x+400, y+70, ANCHO, ALTO, 20,
20));
g2d.drawString( " Dibujo de RECTANGULO REDONDEADO 2D " , x+470,
115 );

/********************* Ellipse sin Relleno. **********************/


// Dibujando una Elipse de Color Azul y con un grosor de cinco pixeles.
g2d.setPaint(Color.BLUE);
g2d.setStroke(new BasicStroke(5.0f));

Programación Grafica en JAVA2D 4


Curso de Programación Programación Gráfica

g2d.draw(new Ellipse2D.Double(x, y+140, ANCHO, ALTO-10));


g2d.drawString( " Dibujo de ELIPSE 2D " , 70, 185 );

/********************* Ellipse con Relleno. **********************/


//Dibujando una Elipse de Color Degradado y con un grosor de cinco
//pixeles.
g2d.setPaint(new GradientPaint( x+400, y+140, Color.MAGENTA, x+400,
y+175,Color.CYAN, true ));
g2d.fill(new Ellipse2D.Double(x+400, y+140, ANCHO, ALTO-10));
g2d.drawString( " Dibujo de ELIPSE 2D " , x+470, y+155 );

/****************** Arcos sin Rellenos. *************************/


// Dibujando una Elipse de Color Verde y con un grosor de seis pixeles.
// Este Arco tiene la particularidad que es cerrado por tal motivo parecera
//que le hace falta
// un Pedazo al Pastel completo.
g2d.setPaint(Color.GREEN);
g2d.setStroke(new BasicStroke(6.0f));
g2d.draw(new Arc2D.Double(x, y+210, ANCHO,ALTO+15, 45, 270,
Arc2D.PIE ));
g2d.setPaint(Color.DARK_GRAY);
g2d.drawString( " Dibujo de ARCO 2D - PASTEL " , 70, 265 );

/****************** Arcos con Rellenos. *************************/


// Dibujando una Elipse de Color Verde y con un grosor de seis pixeles.
// Este Arco tiene la particularidad que es cerrado por tal motivo parecera
//que le hace falta

Programación Grafica en JAVA2D 5


Curso de Programación Programación Gráfica

// un Pedazo al Pastel completo.


g2d.setPaint(new GradientPaint( x+400, y+210, Color.BLUE , x+400,
y+250,Color.LIGHT_GRAY , true ));
g2d.setStroke(new BasicStroke(6.0f));
//g2d.fill(new Arc2D.Double(x+400, y+210, ANCHO,ALTO+15, 45, 270,
Arc2D.PIE ));
//g2d.setPaint(Color.DARK_GRAY);
g2d.drawString( " Dibujo de ARCO 2D - PASTEL " , x+470, 265 );

//Para los arreglos en JAVA2D


int polx[]={150,130,100,130,150,170,200,170,150};
int poly[]={100,130,150,170,200,170,150,130,100}, i=0;
//En este caso solo estoy moviendo la coordenada en y porque me queda
//arriba
for(i=0;i<9;i++){
poly[i]=poly[i]+230;
}

//Se tiene que definir la direccion del dibujo


GeneralPath pol = new GeneralPath();
//Aqui trabajamos con manejo de coordenada en referencia al origen
//Consultarse al libro de programacion de la UNI, ahí esta la referencia
pol.moveTo(polx[0], poly[0]);
//Ahora pasar los puntos del poligono al objeto
for (i=1;i<9;i++){
pol.lineTo(polx[i], poly[i]);
}//Fin del Recorrido For
pol.closePath(); //Cerrando el Objeto de Dibujo

//Relleno con Degradado


g2d.setPaint(new GradientPaint( 500, 100, Color.YELLOW , 530,
150,Color.LIGHT_GRAY , true ));
//Dibujar poligono
g2d.fill(pol);
//Sin relleno, solo el borde de color, generando el borde
g2d.setPaint(new GradientPaint( 500, 100, Color.BLUE , 530,
150,Color.GREEN , true ));
//Dibujar poligono
g2d.draw(pol);

Programación Grafica en JAVA2D 6


Curso de Programación Programación Gráfica

//Dibujo de Línea, solo debe establecerse con Draw


g2d.setStroke(new BasicStroke(10.0f)); //Grosor de 10 pixeles
g2d.draw(new Line2D.Double( 30, 520, 250, 520 ));

} // fin del método paint

// ejecutar la aplicación
public static void main( String args[] )
{
Grafica2D aplicacion = new Grafica2D();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}

} // fin de la clase Figuras

Como se puede observar paso a poso usted puede definir lo que desea realizar
como primitivo grafico, existe mejores posibilidad en Java2D para la manipulación
de los primitivos graficos.

Programación Grafica en JAVA2D 7


Curso de Programación Programación Gráfica

Tareas a Realizar:

1.- Buscar el programa de Logo de la UNI, el cual ya esta diseñado en clases


anteriores, llevar este a Java2D y aplique lo siguiente:

a.- Defina el área de dibujo.


b.- Defina que tipo de atributos aplicara, si es con relleno o sin relleno.
c.- Utilizar graficación en Java2D.
d.- Mostrar los pasos que realizo para hacer posible la graficación, ahora
moviendo los puntos a doscientos coordenadas en X.

2.- Buscar el programa del ambiente de la UNI, es decir el quedo propuesto,


tal como el edificio nuevo, las canchas de baseball, football, etc. Realice
los siguientes pasos para mostrar la grafica en Java2D:

a.- Defina el área de dibujo.


b.- Defina que tipo de atributos aplicara, si es con relleno o sin relleno.
c.- Utilizar graficación en Java2D.
d.- Mostrar los pasos que realizo para hacer posible la graficación, ahora
moviendo los puntos a doscientos coordenadas en X.

Programación Grafica en JAVA2D 8


Curso de Programación Programación Gráfica

Toda la Bibliografía utilizada aquí es:

Titulo: Como Programar en Java. Información de los Capitulos JAVA2D.


Autor Deitel & Deitel. Capitulo XII y XIII.
Edicion: Quinta Edicion.
ISBN: 970-26-0518-0
Curso de Maestria de Redes de Dibujo y manejo de Conceptos.
Computadoras: Msc. José Abelardo
Sanchez (Conferencia #9)
Programas Diseñados por Giovanni Aplicación Diseñada
Sáenz.

Programación Grafica en JAVA2D 9

También podría gustarte