import java.awt.*;
import java.awt.event.*;
// Objetivo:
// Se Crea una interfaz con los siguientes componentes:
// 2 de tipo Choice
hoice anterior
segundo Choice
// 2 de tipo Panel para permitir el trazo de primitivas indicadas en el primer Choice.
// 1 de tipo Scrollbar para indicarnos
// El radio del circulo
// El largo de la arista del cuadro
// --------------------------------------------------------------------
eleccionado en el otro Choice
// Cuando se seleccione un Panel, inmediatamente se dibujara la primitiva indicada en el primer choice.
public class Paneles extends java.applet.Applet
{
Choice CH_Primitiva, CH_Panel;
Button BLimpiar;
AreaGrafica P_Izq, P_Der;
TextField TF = new TextField();
public void init ( )
{
setLayout(null); // Se fija al contenedor ABSOLUTO
// Choice de las primitivas
CH_Primitiva = new Choice( );
CH_Primitiva.add("Circulo");
CH_Primitiva.add("Cuadro");
CH_Primitiva.setBounds(10, 10, 100, 30); // Se posiciona en el contenedor
CH_Primitiva.addItemListener(new EVENTO_CHOICE_P( )); // Se captura al evento
// Choice de los paneles
CH_Panel = new Choice( );
CH_Panel.add("Derecha");
CH_Panel.add("Izquierda");
add(CH_Panel);
CH_Panel.setBounds(120, 10, 100, 30);
// Botòn
BLimpiar = new Button("Limpiar");
add(BLimpiar);
BLimpiar.setBounds(230, 10, 100, 30);
BLimpiar.addActionListener( new EVENTO_BOTON( ) ); // Captura del evento
// Panel izquierdo
P_Izq = new AreaGrafica( );
add(P_Izq);
P_Izq.setBounds(10, 50, 200, 200);
P_Izq.setBackground(Color.orange);
// Panel derecho
P_Der = new AreaGrafica( );
add(P_Der);
P_Der.setBounds(220, 50, 200, 200);
P_Der.setBackground(Color.blue);
}
class EVENTO_SCROLL implements AdjustmentListener
{
public void adjustmentValueChanged(AdjustmentEvent e)
{
TF.setText("RAFA");
}
}
class EVENTO_BOTON implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String CAD = CH_Panel.getSelectedItem( );
if (CAD.equals("Derecha") )
P_Der.Limpia( );
else
P_Izq.Limpia( );
}
}
class EVENTO_CHOICE_P implements ItemListener
{
public void itemStateChanged(ItemEvent e)
{
String CAD = CH_Panel.getSelectedItem( );
String Primitiva = (String)e.getItem( );
AreaGrafica PANEL;
if (CAD.equals("Derecha") )
PANEL = P_Der;
else
PANEL = P_Izq;
if (Primitiva.equals("Linea"))
PANEL.Dibuja(1);
if (Primitiva.equals("Circulo"))
PANEL.Dibuja(2);
if (Primitiva.equals("Cuadro"))
PANEL.Dibuja(3);
}
}
}
class AreaGrafica extends Panel
{
int LINEA = 1;
int CIRCULO = 2;
int CUADRO = 3;
int Tipo = 0;
void Dibuja(int Tipo)
{
this.Tipo = Tipo;
repaint( );
}
void Limpia( )
{
Tipo = 4;
repaint( );
}
public void paint(Graphics R)
{
R.setColor(Color.white);
switch (Tipo)
{
case 1:
R.drawLine(10, 10, 100, 10);
break;
case 2:
R.drawOval(10, 10, 50, 50);
break;
case 3:
R.drawRect(10, 10, 100, 100);
break;
case 4:
R.clearRect(0, 0, 400, 400);
}
}
}