Con el método action()
vamos a manejar los eventos que tienen como blanco (target) botones,
campos de texto, casillas de verificación, cajas de opción y menús. La forma
del método es
Como el método debe retornar un valor booleano, la última línea debe ser 'return true;' o 'return false;'. Si el evento se maneja en action( ) se retorna 'true'. Si el evento no se maneja, o se pasa a otro método (que devuelve true o false) entonces se retorna 'false' (para que otros componentes tengan oportunidad de manejar el evento).
Si tenemos Button btn1= new Button("Botón 1"); TextField tf1 = new TextField(" texto "); entonces
|
|||
Componente |
El contenido del objeto arg es el String |
El contenido de evento.target es la referencia |
|
Botón | "Botón 1" | btn1 | |
Campo de texto | " texto " | tf1 |
El Objeto 'arg' lo usamos en el ejemplo de la sección anterior. En este ejemplo
solo teníamos un botón con dos posibles etiquetas "Azul" o
"Verde" y 'arg' nos sirvió para conocer información acerca de
la etiqueta actual del botón.
|
public boolean action(Event evento,Object
arg ) { if( evento.arg.equals("Azul") ) //Un solo botón con dos posibles etiquetas { setBackground(Color.blue); // cambia el color de fondo a azul btn1.setLabel ("Verde"); // ahora el botón se llama 'Verde' btn1.setActionCommand ("Verde");// ahora el botón se identifica con "Verde" } if( evento.arg.equals("Verde") ) { setBackground(Color.green); // cambia el color de fondo a verde btn1.setLabel ("Azul"); // ahora el botón se llama 'Azul' de nuevo btn1.setActionCommand ("Azul"); // ahora el botón se identifica con "Azul" } |
En general, el método action( ) luce así
|
public boolean action(Event evt, Object arg) { if (evt.target == button1) { // manejo del evento asociado a button1 return true; } else if (evt.target == button2) { // manejo del evento return true; } else if (evt.target == tf1) { // manejo del evento tf1 return true; } ...
} else return super.action(evt,arg); |
Ejemplo
En el siguiente ejemplo pondremos dos campos de texto y dos botones en la ventana de un applet. Los botones ocultan los campos de texto usando el método ' setVisible()'
|
|
import java.awt.*; import java.applet.*; public class Eventos extends Applet { TextField tf1, tf2; Button btn1, btn2; public void init() { tf1 = new TextField(" "); tf2 = new TextField(" "); btn1 = new Button ( "Botón 1"); btn2 = new Button ( "Botón 2"); add(btn1); add(tf1); add(btn2); add(tf2); btn1.setBackground(new Color(153,255,0)); btn2.setBackground(new Color(153,255,0)); setBackground(new Color(0,153,153)); } public Insets insets() { // márgenes de 5 alrededor del applet return new Insets(5,5,5,5); } public boolean action(Event evt, Object arg) { if (evt.target == btn1) { tf1.setVisible(false); tf2.setVisible(true); }else if (evt.target == btn2) { tf1.setVisible(true); tf2.setVisible(false); } return true; //todo se manejo aquí mismo } } // |
Los navegadores ya no brindan soporte para applets de java, este applet se ha deshabilitado
|
Ejercicio
Implemente el programa anterior usando evt.arg |
Revista digital Matemática, Educación e Internet.
Derechos Reservados