import java.awt.*; import java.awt.event.*; // OBJETIVO: // el valor de 2 barras de desplazamiento (Scrollbar) que controlan el ancho y el alto respectivamente // del componente en tratamiento. public class Chicle extends java.applet.Applet { Scrollbar SB_Ancho, SB_Alto; Choice Opciones; Button Boton; TextField CampoTexto; // false = Boton // true = Campo de texto boolean Componente = false; public void init( ) { setLayout(null); // Me permite ser dueño de la posiciòn y del tamaño de los componentes -ABSOLUTO- SB_Ancho = new Scrollbar(Scrollbar.HORIZONTAL, 0, 1, 0, 100); add(SB_Ancho); SB_Ancho.setBounds(120, 10, 300, 30); // Dimensiones en pixeles SB_Ancho.addAdjustmentListener(new EVENTO_SCROLL( ) ); SB_Alto = new Scrollbar(Scrollbar.VERTICAL, 0, 1, 0, 100); add(SB_Alto); SB_Alto.setBounds(10, 50, 30, 300); // Dimensiones en pixeles SB_Alto.addAdjustmentListener(new EVENTO_SCROLLV( ) ); Opciones = new Choice( ); Opciones.add("Boton"); Opciones.add("CampoTexto"); add(Opciones); Opciones.setBounds(5, 5, 100, 30); Opciones.addItemListener(new EVENTO_CHOICE( ) ); // CAPTURA DEL EVENTO Boton = new Button("OK"); add(Boton); Boton.setBounds(100, 100, 50, 30); Boton.setVisible(false); CampoTexto = new TextField( ); add(CampoTexto); CampoTexto.setBounds(100, 100, 50, 30); CampoTexto.setVisible(false); } // Se usa normalmente para dibujar o escribir public void paint(Graphics R) { } // ATENCION A LOS EVENTOS class EVENTO_SCROLL implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int Ancho; int Alto; if (Componente) // Se trata del Campo de texto { Ancho = e.getValue(); Alto = CampoTexto.getHeight( ); CampoTexto.setSize(Ancho, Alto ); } else { // Se trata del Boton Ancho = e.getValue(); Alto = CampoTexto.getHeight( ); Boton.setSize(Ancho, Alto ); } } } class EVENTO_SCROLLV implements AdjustmentListener { public void adjustmentValueChanged(AdjustmentEvent e) { int Alto; int Ancho; if (Componente) // Se trata del Campo de texto { Alto = e.getValue(); Ancho = CampoTexto.getWidth( ); CampoTexto.setSize(Ancho, Alto ); } else { // Se trata del Boton Alto = e.getValue(); Ancho = CampoTexto.getWidth( ); Boton.setSize(Ancho, Alto ); } } } class EVENTO_CHOICE implements ItemListener { public void itemStateChanged(ItemEvent COMPONENTE) { String Opcion = (String)COMPONENTE.getItem( ); if (Opcion.equals("CampoTexto") ) { CampoTexto.setVisible(true); Boton.setVisible(false); Componente = true; } else { CampoTexto.setVisible(false); Boton.setVisible(true); Componente = false; } } } }