Ventana basica para graficar en Java (Graphics)

En esta ocasion quiero mostrar una propuesta de una ventana para graficar en Java y un resumen de metodos de la Clase java.awt.Graphics. Esto se me ocurrio ya que llevo la materia de graficacion y tuve que hacer uso de estos metodos para crear un dibujo sencillo. Bueno, sin mas que decir, el codigo es este:

/*
 *		Instituto Tecnologico de Zacatepec, Mor.
 * Descripcion:
 *	 Crea una ventana muy basica para graficar, y da 
 *  un resumen de metodos para graficar.
 * @author: Gonzalo Silverio gonzasilve@gmail.com
 * Archivo: PrimitivasJava.java
 * 
 */
 
import java.io.*;
import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class PrimitivasJava extends Frame
{
	
   PrimitivasJava(String titulo,int ancho,int alto)
   {       
    	setTitle(titulo);
    	setBackground(new Color(0x00,0x00,0x00) );
    	setSize(ancho,alto);
		setLocationRelativeTo(null);	//Centrar
		setResizable(false);
		
		// ### ESCUCHADOR DE VENTANA ###
    	//Para que al dar clic en la x de la esquina de este Frame se cierre
		addWindowListener(new WindowAdapter() 
		{		
			public void windowClosing(WindowEvent e) 
			{
				System.exit(0);
			}

			public void windowClosed(WindowEvent e) 
			{
				System.exit(0);			
			}
		});
	}

	public void paint(Graphics g)
	{

//		AQUI VA TODO EL CODIGO PARA GRAFICAR
//		Aqui se pueden usar las primitivas de graficacion
//		de la clase Graphics

//		A continuacion pongo un resumen de metodos de esta clase 
//		y algunas clases relacionadas.
		
//		g.drawLine(x1, y1, x2, y2); 
//		g.drawRect(x, y, ancho, alto);
//		g.fillRect(x, y, ancho, alto); 
//		g.drawOval(x, y, ancho, alto); 
//		g.fillOval(x, y, ancho, alto);  
//		g.drawArc( x, y, ancho, alto, startAngle, arcAngle); 
//		g.fillArc( x, y, ancho, alto, startAngle, arcAngle);  
//		g.drawString(String s, Posx, Posy);
		 
//		g.setColor(Color c);		establece el color de 1er plano
//		g.setFont(Font f); 		establece la fuente
		 
//		g.drawPolyline(int xPuntos[], int yPuntos[], nPuntos);
//		g.drawPolygon( int xPuntos[], int yPuntos[], nPuntos);
//		g.drawPolygon( poly);
//		g.fillPolygon( int xPuntos[], int yPuntos[], nPuntos); Poligono relleno
		
//		Las constantes de color son las siguientes:
		
//		Color.BLACK, Color.WHITE, Color.DARK_GRAY, Color.GRAY, 
//		Color.LIGHT_GRAY, Color.BLUE, Color.CYAN, Color.GREEN, 
//		Color.RED, Color.MAGENTA, Color.PINK, Color.ORANGE, 
//		Color.YELLOW, Color.BLUE, Color.CYAN  
		
//		Para crear un color (los enteros r,g,b pueden ir de 0 a 255):
//		Color miColor = new Color(int r, int g, int b);
		
//		Otra clase mas avanzada que Graphics es la clase javax.swing.Graphics2D

	}
	
	public void mostrar()
	{
		setVisible(true);
	}
	
	//Punto de entrada del programa
	public static void main(String args[])
	{
		PrimitivasJava test=new PrimitivasJava("Ventana para graficar en Java",400,400);
		test.mostrar();
   }        
   			
}

Y la ventana que se genera cuando se ejecuta el codigo anterior es esta:

JFrame listo para graficar

JFrame listo para graficar

Como se observa es una ventana al cual le he establecido un fondo negro y esta lista para usar cualquiera de los metodos de la clase Graphics. A continuacion muestro un ejemplo de un dibujo muy basico donde se usan algunos de estos metodos, el codigo:

/*
    	Instituto Tecnologico de Zacatepec, Mor.
   Descripcion:
		Ejemplo graficacion muy basico acerca del uso de los 
		metodos de la clase Graphics
   author: Gonzalo Silverio gonzasilve@gmail.com
   Archivo: GraficacionEjemplo1.java
  */
 
import java.io.*;
import java.lang.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class GraficacionEjemplo1 extends Frame
{
	
   GraficacionEjemplo1(String titulo,int ancho,int alto)
   {       
    	setTitle(titulo);
    	setBackground(new Color(0xff,0x67,0x65) );
    	setSize(ancho,alto);
		setLocationRelativeTo(null);	//Centrar
		setResizable(false);
		
		// ### ESCUCHADOR DE VENTANA ###
    	//Para que al dar clic en la x de la esquina de este Frame se cierre
		addWindowListener(new WindowAdapter() 
		{		
			public void windowClosing(WindowEvent e) 
			{
				System.exit(0);
			}

			public void windowClosed(WindowEvent e) 
			{
				System.exit(0);			
			}
		});
	}

	public void paint(Graphics g)
	{

		//pared izquierda del cuarto
		Polygon poligono=new Polygon();
		poligono.addPoint(5, 30);
		poligono.addPoint(102, 100);
		poligono.addPoint(102, 450);
		poligono.addPoint(5, 500);
		g.setColor(new Color(0x17,0xA2,0xFF));
		g.fillPolygon(poligono);
    	
    	
		//puerta del cuarto
		Polygon puerta=new Polygon();
		puerta.addPoint(40, 190);
		puerta.addPoint(98, 215);
		puerta.addPoint(98, 453);
		puerta.addPoint(40, 482);
		g.setColor(new Color(0xC7,0xF2,0xB0));
		g.fillPolygon(puerta);
		
		Polygon Marcopuerta=new Polygon();
		Marcopuerta.addPoint(40, 190);
		Marcopuerta.addPoint(98, 215);
		Marcopuerta.addPoint(98, 453);
		Marcopuerta.addPoint(40, 482);
		g.setColor(new Color(0x00,0x00,0x00));
		g.drawPolygon(Marcopuerta);
		
		
		//perilla del la puerta
		g.setColor(new Color(0xA0,0x00,0x0A));
		g.fillOval(40,350,10,10);
		
    	//Fondo del cuarto
    	g.setColor(new Color(0x17,0xA2,0xFF));
    	g.fillRect(103,100,596,350);
    	
    	//pared derecha del cuarto
		Polygon poligono2=new Polygon();
		poligono2.addPoint(700, 100);
		poligono2.addPoint(700, 450);
		poligono2.addPoint(795, 500);
		poligono2.addPoint(795, 30);
		g.setColor(new Color(0x17,0xA2,0xFF));
		g.fillPolygon(poligono2);
		
		//techo del cuarto
		Polygon poligono3=new Polygon();
		poligono3.addPoint(3, 27);
		poligono3.addPoint(102, 99);
		poligono3.addPoint(699, 99);
		poligono3.addPoint(798, 26);
		g.setColor(Color.WHITE);
		g.fillPolygon(poligono3);
		
		//Lampara colgante
		//-------- Soporte y cuerdas  ----------
		g.setColor(Color.GRAY);		
		g.fillRect(386,60,3,15);	
		g.fillArc(380,50,15,15,0,-180);
		g.drawLine(362,78,412,68);
		g.drawLine(376,68,400,78);
		g.fillRect(361,78,2,50);	//cuerda lampara1
		g.fillRect(412,68,2,40);	//cuerda lampara2
		g.fillRect(375,68,2,30);	//cuerda lampara3
		g.fillRect(400,78,2,55);	//cuerda lampara4
		
		
		//Lamparas
		//-------- Lamparas  ----------
		g.setColor(Color.WHITE);
		g.fillArc(352,128,20,45,0,180);	//lampara1
		g.fillArc(403,108,20,45,0,180);	//lampara2
		g.fillArc(366,98,20,45,0,180);	//lampara3
		g.fillArc(391,133,20,45,0,180);	//lampara4
		
		//Mesa
		g.setColor(new Color(0xFF,0x7B,0xEB));	//		base mesa
		g.fillOval(398,485,80,30);
		g.setColor(new Color(0x67,0x61,0xFF));	//		soporte
		g.fillRoundRect(430,400,20,100,5,5);		
		g.setColor(new Color(0xC7,0x5E,0xA3));	//		Mesa
		g.fillOval(300,350,280,60);
		g.setColor(new Color(0xA5,0x32,0x92));	
		g.fillOval(309,345,263,60);
		
		//Laptop
		
		Polygon poligono4 = new Polygon();		//Pantalla
		poligono4.addPoint(385, 315);
		poligono4.addPoint(445,320);
		poligono4.addPoint(450, 365);
		poligono4.addPoint(390, 360);
		g.setColor(Color.WHITE);
		g.fillPolygon(poligono4);
		
		Polygon polPant = new Polygon();		//borde Pantalla
		polPant.addPoint(385, 315);
		polPant.addPoint(445,320);
		polPant.addPoint(450, 365);
		polPant.addPoint(390, 360);
		g.setColor(Color.BLACK);
		g.drawPolygon(polPant);
		
		
		Polygon poligono5 = new Polygon();		//CPU
		poligono5.addPoint(390, 360);
		poligono5.addPoint(450, 365);		
		poligono5.addPoint(430, 400);
		poligono5.addPoint(370, 390);
		//poligono5.addPoint(315, 485);
		g.setColor(Color.WHITE);
		g.fillPolygon(poligono5);
		
		Polygon polCPU = new Polygon();		//borde C.P.U.
		polCPU.addPoint(390, 360);
		polCPU.addPoint(450, 365);		
		polCPU.addPoint(430, 400);
		polCPU.addPoint(370, 390);
		g.setColor(Color.BLACK);
		g.drawPolygon(polCPU);

		//Ventanas		
		g.setColor(new Color(0x89,0x49,0x32));
		g.fillRect(500,150,180,170);	//Marco cafe de la ventana
		g.setColor(Color.BLACK);
		g.fillRect(505,175,170,140);	//Fondo noche de la ventana
		g.fillArc(505,155,80,40,0,180);
		g.fillArc(595,155,80,40,0,180);		
			//Luna
		g.setColor(Color.WHITE);
		g.fillOval(625,165,40,40);
		g.setColor(Color.BLACK);
		g.fillOval(635,165,40,40);
		g.setColor(new Color(0x89,0x49,0x32));
		g.fillRect(505,240,170,2);  //Linea horizontal ventanas
		g.fillRect(545,150,2,165);  //Linea vertical ventana 1
		g.fillRect(633,150,2,165); //Linea vertical ventana 2		
		g.fillRect(585,175,10,140);	//Linea divisoria de las 2 ventanas
		
		

		g.setFont( new Font("Arial",Font.PLAIN,24 ));
		g.setColor(Color.BLUE);
		g.drawString("Gonzalo Silverio",250,580);
	}
	
	public void mostrar()
	{
		setVisible(true);
	}
	
	//Punto de entrada del programa
	public static void main(String args[])
	{
		GraficacionEjemplo1 test=new GraficacionEjemplo1("Ejemplo de primitivas graficas en JAVA",800,600);
		test.mostrar();
   }        
   			
}  	//Fin del ejemplo

Y el resultado es este:

Ejemplo del uso de primitivas graficas en Java

Ejemplo del uso de primitivas graficas en Java



Espero te sirva algo de esto, recuerda que comentar=agradecer. Haa y ya sabes, si quieres los .java basta con dejar tu e-mail. Hasta pronto.

A %d blogueros les gusta esto: