Ventana_4.java_



import java.awt.*;
import javax.swing.JFrame;
import java.awt.event.*;
import javax.swing.JPanel;
import java.awt.Graphics;
 
// Prototipo de una aplicacon de ventana

// 1.-	Se crea la clase que extienda a la clase Frame, JFrame o Window
public class Ventana_4
{
	Ventana V4[] = new Ventana[4];
	public static void main(String k[]) { new Ventana_4(); }
	public Ventana_4()
	{
		// Ventana(Titulo, x, y, ancho, alto, tipo, tamanio);
		// tipo 1 = circulo, tipo 2 = triangulo
		// tamanio 0 = chico, tamanio 1 = grande
		V4[0] = new Ventana("Circulo chico...", 10, 10, 600, 400, 1, 0);
		V4[1] = new Ventana("Circulo grande...", 650, 10, 600, 400, 1, 1);
		V4[2] = new Ventana("Triangulo grande...", 10, 450, 600, 400, 2, 1);
		V4[3] = new Ventana("Triangulo chico...", 650, 450, 600, 400, 2, 0);
	}
}


class Ventana extends JFrame
{
	AreaDeDibujo Lienzo;

	public Ventana(String Msg, int X, int Y, int Ancho, int Alto, int Tipo, int Tamanio)
	{
		this.getContentPane().setLayout(null);		// Contenedor nulo
		this.setTitle(Msg);				// Titulo de la ventana
		this.setResizable(false);			// No es redimensionable
		this.setLocation(X, Y);	// Posicion desde la esquina superior izquierda del monitor
		this.setSize(new Dimension(Ancho, Alto));	// Dimensiones

		Lienzo = new AreaDeDibujo(Tipo, Tamanio, Ancho-10, Alto-10);
		this.add(Lienzo);
		Lienzo.setBounds(5,5,Ancho-10,Alto-10);
		this.setVisible(true);
	}

	// 3.-	Captura del evento "cerrar ventana"
	protected void processWindowEvent(WindowEvent e)
	{ super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } }
}


class AreaDeDibujo extends Canvas
{
	int Tipo = 0, Tamanio = 0, Alto = 0, Ancho = 0;
	
	public AreaDeDibujo(int Tipo, int Tamanio, int Alto, int Ancho)
	{ this.Tipo = Tipo; this.Tamanio = Tamanio; this.Alto = Alto; this.Ancho = Ancho; }

	public void paint(Graphics G)
	{
		G.clearRect(0, 0, Ancho, Alto);
		if (Tamanio == 0) Tamanio = 80; else Tamanio = 200;

		switch (Tipo)
		{
			case 1:
				G.drawOval(Ancho/2 - Tamanio/2, Alto/2-Tamanio/2, Tamanio, Tamanio);
				//(x,y,width,height);
				break;
			case 2:
				int XP[] = {200, 50, 400};
				int YP[] = {50, 50, 200};
				G.drawPolygon(XP, YP, 3);
				// drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
				break;
		}
	}

}