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); } } }