Escribir un Oyente de "Action"
Los oyentes de "Action" probablemente son los más sencillos -- y más comunes -- manejadores de eventos para implementar. Se implementan para responder a una indicación del usuario de que una acción dependiente de la implementación debería ocurrir. Por ejemplo, cuando un usuario pulsa un
botón, hace doble click sobre un ítem de una
lista, elige un ítem de un
menú, o pulsa return en un
campo de texto, ocurre un evento action. El resultado es que se envia un mensaje
actionPerformed a todos los oyentes que están registrados en un componente relevante
Métodos del Evento Action
El interface ActionListener contiene un sólo método y no tiene clase adaptador correspondiente. Aquí tienes el único método de ActionListener:
-
void actionPerformed(ActionEvent)
- Llamado por el AWT justo después de que el usario informe al componentes que debería ocurrir una acción.
Ejemplos de manejo del evento Action
Aquí tienes el código de manejo del evento Action para un applet llamado Beeper.java:
public class Beeper ... implements ActionListener {
...
//Donde ocurra la inicialización:
button.addActionListener(this);
...
public void actionPerformed(ActionEvent e) {
...//Make a beep sound...
}
}
Puedes encontrar ejemplos de oyentes de Action en las siugientes secciones:
- Un ejemplo sencillo
- Contiene y explica el applet cuyo código has visto arriba.
- Un ejemplo más complejo
- Contiene y explica un applet que tiene dos fuentes de Action y dos oyentes de Action, con un oyente que escucha las dos fuentes y el otro sólo escucha uno de ellos.
La clase ActionEvent
El método actionPerformed tiene un sólo parámetro, un objeto ActionEvent.
La clase ActionEvent define dos métodos útiles:
- getActionCommand
- Devuelve la cadena asociada con esta acción. Generalmente, ésta es la etiqueta del componente -- o del ítem seleccionado dentro del componente -- que genera la acción.
- getModifiers
- Devuelve un entero que representa las teclas modificadores que el usuario estaba pulsando cuando ocurrió el evento Action. Se pueden utilizar las constantes ActionEvent.SHIFT_MASK, ActionEvent.CTRL_MASK, ActionEvent.META_MASK, y ActionEvent.ALT_MASK para determinar qué teclas estaban pulsadas. Por ejemplo, si el usuario seleccionó con Shift un ítem de menú, la siguiente expresión será distinta de cero:
actionEvent.getModifiers() & ActionEvent.SHIFT_MASK
También es útil el método getSource, que devuelve el objeto (un componente o menú) que generó el evento Action. El método getSource está definido en una de las superclases de ActionEvent,
EventObject.
Ozito