Clases oyentes y adaptadoras de eventos

Los objetos que tratan los eventos se crean implementando las interfaces Listener. La mayoría de estas interfaces Java de los oyentes están diseñadas para responder a varios eventos diferentes, de modo que incluyen más de un método.

Por ejemplo, la interfaz oyente de interacciones del ratón MouseInputListener tiene siete métodos, tres relacionados con la operación del botón: mousePressed(), mouseReleased() y mouseClicked(), y cuatro relacionados con el movimiento: mouseEntered(), mouseExited(), mouseMoved(), y mouseDragged(). Esto provoca que la clase oyente deba implementarlos todos, aunque sólo nos interese usar alguno de ellos, y a dejar vacíos los que no nos interesan, ya que sino, la clase sería abstracta, y no se podrían crear objetos de la misma.

Para simplificar la escritura de oyentes, Java proporciona un conjunto de clases adaptadoras, que implementan las interfaces oyentes con todos los cuerpos de los métodos vacíos. Así, un oyente se puede crear especializando un adaptador e implementando sólo el método que interese.

Veamos un ejemplo, con la clase adaptadora MouseInputAdapter, para escribir una clase oyente para las pulsaciones del ratón en un botón:

import java.awt.event.MouseEvent;

import javax.swing.JButton;

public class OyenteRaton extends javax.swing.event.MouseInputAdapter {

public void mouseClicked(MouseEvent event) {
// SE OBTIENE EL BOTON FUENTE DEL EVENTO
JButton boton = (JButton) event.getSource();
// Y CAMBIAMOS LA ETIQUETA CON EL NOMBRE DEL BOTON PULSADO
etiqueta.setText(boton.getText());
}

}

No os preocupéis si no entendéis alguna cosa. Lo explicaré todo en las siguientes entradas (y este tema es muuuuuuuuy largo)

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s