Chicle.java_



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

		}
	}
}