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