import [Link].
BorderLayout;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class EventListenerExample2 {
private Frame frame;
private TextField textField;
private Button button;
private Label label;
private Checkbox checkbox;
public EventListenerExample2(){
frame = new Frame("Event Listener Example");
//Crear y configurar componentes
textField = new TextField(20);
button = new Button("Click me");
label = new Label("Status");
checkbox = new Checkbox("Habilitar");
//Crear un panel para organizar componentes
Panel panel = new Panel();
//Instancia del constructor
[Link](new FlowLayout());
[Link](label);
[Link](textField);
[Link](button);
[Link](checkbox);
//Agregar el panel al marco
[Link](panel,[Link]);
//Agregar escuchadores de eventos a los componentes
[Link](new ButtonActionListener());
[Link](new TextFieldFocusListener());
[Link](new CheckboxItemListener());
//Configurar el tamaño del marco y hacerlo visible
[Link](300,200);
[Link](true);
}
//Clase interna que implementa ActionListener para el botón
class ButtonActionListener implements ActionListener{
public void actionPerformed(ActionEvent e){
[Link]("Botón clickeado");
}
}
//Clase interna que implementa FocusListener para el campo de texto
class TextFieldFocusListener implements FocusListener{
public void focusGained(FocusEvent e){
[Link]("Campo de texto en fondo");
}
public void focusLost(FocusEvent e){
[Link]("Campo de texto fuera de foco");
}
}
//Clase interna que implementa ItemListener para el checkbox
class CheckboxItemListener implements ItemListener{
//Esta es la escuha del evento creado y procesarlo
public void itemStateChanged(ItemEvent e){
//Regresa el valor en booleano
if ([Link]()){
[Link](true);
[Link]("Campo de texto habilitado");
}
else{
[Link](false);
[Link]("Campo de texto deshabilitado");
}
}
}
//Run/Debug
public static void main(String[] args){
new
EventListenerExample2();
}
public Frame getFrame(){
return frame;
}
//Lo envia al frame de tipo border no es grid
public void setFrame(Frame frame){
//hace una instancia al objeto creado
[Link] = frame;
}
public TextField getTextField(){
return textField;
}
//Aquí solo es para editar el texto en línea con TextField
public void setTextField(TextField textField){
[Link] = textField;
}
//La clase de button esta en la libreria awt
public Button getButton(){
return button;
}
public Label getLabel(){
return label;
}
public void setLabel(Label label){
[Link] = label;
}
public Checkbox getCheckbox(){
return checkbox;
}
public void setCheckbox(Checkbox checkbox){
[Link] = checkbox;
}
}