Figuras.java



// EJEMPLO DE JCOMBOBOX
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;


class Figuras extends JFrame
{
	int W = 500, H=500;
	String Figura = "Cuadro", Fondo = "FRojo", Trazo = "TRojo";

	String FIG[] = {"Cuadro", "Circulo", "Triangulo"};
	String COLTRAZO[] = {"TRojo", "TVerde", "TAzul"};
	String COLFONDO[] = {"FRojo", "FVerde", "FAzul"};

	JComboBox JCB_FIG   = new JComboBox(FIG);
	JComboBox JCB_TRAZO = new JComboBox(COLTRAZO);
	JComboBox JCB_FONDO = new JComboBox(COLFONDO);
	JPanel JP = new JPanel();
	Grafico C  = new Grafico();

	public static void main(String S[]) { new Figuras(); }

	public Figuras()
	{
		setSize(W, H);
		setLocationRelativeTo(null);
		setVisible(true);
		UpControl();
		UpGraph();
	}

	void UpControl()
	{
		add(JP); JP.setBackground(Color.yellow); JP.setBounds(0, 0, W, 100);
		JP.add(JCB_FIG); JP.add(JCB_TRAZO); JP.add(JCB_FONDO);
		JCB_FIG.setBounds(50, 20, 100, 50); JCB_FIG.addItemListener(new EventoCombo());
		JCB_TRAZO.setBounds(200, 20, 100, 50); JCB_TRAZO.addItemListener(new EventoCombo());
		JCB_FONDO.setBounds(350, 20, 100, 50); JCB_FONDO.addItemListener(new EventoCombo());
	}

	void UpGraph()
	{
		add(C); C.setBackground(Color.red); C.setBounds(0, 110, W, 380);
	}

	class EventoCombo implements ItemListener
	{
		String Opcion = "";
		public void itemStateChanged(ItemEvent e)
		{
			Opcion = ""+e.getItem();
			if (Opcion.compareTo("Cuadro")==0 || Opcion.compareTo("Circulo")==0 ||
				Opcion.compareTo("Triangulo")==0) Figura = Opcion;
			if (Opcion.compareTo("TRojo")==0 || Opcion.compareTo("TVerde") ==0 ||
				 Opcion.compareTo("TAzul")==0) Trazo = Opcion;
			if (Opcion.compareTo("FRojo")==0 || Opcion.compareTo("FVerde")==0 ||
				 Opcion.compareTo("FAzul")==0) Fondo = Opcion;
			C.Actualiza(Figura, Trazo, Fondo);
			C.repaint();
		}
	}
}


class Grafico extends Canvas
{
	String Trazo = "TRojo", Fondo = "FRojo", Figura = "Cuadro";
	Color CF = Color.red, CT = Color.red;

	void Actualiza(String Figura, String Trazo, String Fondo)
	{
		this.Trazo = Trazo;
		this.Figura = Figura;
		this.Fondo = Fondo;
	}

	public Grafico() {}

	public void paint(Graphics G)
	{
		if ( Figura.compareTo("Cuadro") ==0) Cuadro(CF, CT, G);
		if ( Figura.compareTo("Circulo") ==0) Circulo(CF, CT, G);
		if ( Figura.compareTo("Triangulo") ==0) Triangulo(CF, CT, G);
	}

	void Cuadro(Color CF, Color CT, Graphics G)
	{ G.setColor(CF); G.fillRect(0,0,500, 380); G.setColor(CT); G.drawRect(100, 100, 100, 100); }

	void Circulo(Color CF, Color CT, Graphics G)
        {  G.setColor(CF); G.fillRect(0,0,500, 380); G.setColor(CT); G.drawOval(100, 100, 100, 100); }

	void Triangulo(Color CF, Color CT, Graphics G)
        {
		G.setColor(CF); G.fillRect(0,0,500, 380); G.setColor(CT);
		G.drawLine(100, 100, 300, 300);
		G.drawLine(300, 300, 10, 300);
		G.drawLine(10, 300, 100, 100);
	}
}