0% encontró este documento útil (0 votos)
65 vistas

Eventos Java

Un manejador de eventos es un objeto que implementa métodos para responder a eventos como pulsaciones de botones o teclas. Podemos crear un manejador de eventos usando una clase anónima o una clase concreta, y vincularlo a componentes gráficos para que ejecute código cuando ocurran eventos. Existen interfaces para diferentes tipos de eventos como ActionListener para eventos de botones.

Cargado por

César Ramírez
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
65 vistas

Eventos Java

Un manejador de eventos es un objeto que implementa métodos para responder a eventos como pulsaciones de botones o teclas. Podemos crear un manejador de eventos usando una clase anónima o una clase concreta, y vincularlo a componentes gráficos para que ejecute código cuando ocurran eventos. Existen interfaces para diferentes tipos de eventos como ActionListener para eventos de botones.

Cargado por

César Ramírez
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Manejadores de Eventos

Una interfaz gráfica se maneja mediante eventos. Los eventos le indican al programa como
debe actuar: qué codigo debe ejecutar. La parte del programa que está atenta de esos
eventos se conoce como manejador de eventos o listener.

Eventos
Un evento es una acción, provocada en la mayoría de los casos por el usuario, y que supone
un cambio en el estado de algún componente (por ejemplo, botón). Los eventos, permiten
llevar a cada la funcionalidad de las aplicaciones basadas en una GUI.

Para que nuestro programa pueda responder (ejecutar código) ante un evento, debemos
usar un manejador de eventos.

El manejador de eventos es un objeto que implementa los métodos necesarios para


responder a ciertos tipos de eventos. Por ejemplo, para responder a los eventos de tipo
ActionEvent necesitamos un objeto que haya implementado el método
actionPerformed(ActionEvent event).

public void actionPerformed(ActionEvent evento)

//El código de este método se ejecuta cuando se poduce un evento

Después debemos vincular los elementos gráficos que queremos que respondan a los
eventos. Para esto añadimos el objeto manejador de eventos al componente que queramos.

JButton btnNuevo = new JButton("Nuevo");

btnNuevo.addActionListener(manejadorEventos);

Para tener un objeto que maneje eventos, podemos usar dos planteamientos:

▪ utilizando una clase anónima que implemento el método actionPerformed()


▪ creando una clase concreta que implemente la interface ActionListener.
Usando Clases Anónimas
En algunas situaciones, dado que hay muy pocos componentes sobre los que manejar
eventos, podemos evitar crear una clase concreta para manejar eventos. Simplemente
implementaremos el método para manejar eventos actionPerformed() directamente a la
hora de contruir un objeto. Este se realiza mediante la instanciación de una clase anónima:

JButton btnNuevo = new JButton("Nuevo");


//Usamos una clase anónima que implementa la interface ActionListener

btnNewNuevo.addActionListener(new ActionListener() {

//Y por lo tanto está obligada a implementar sus métodos

@Override

public void actionPerformed(ActionEvent evento) {

//código que se ejecuta al producirse el evento

}); //Fin de la llamada al método addActionListener()

Si nos fijamos, el parámetro que pasamos al método addActionListener() no es una


variable que contiene el objeto de tipo ActionListener, sino que dentro de los paréntesis
creamos un nuevo objeto que implementa la interface ActionListener. Estamos
definiendo una clase anónima.

Usando Interfaces
Cuando tenemos que manejar eventos en muchos componentes (varios botones, diferentes
eventos, etc) la forma más correcta es crear una clase que actúe como manejador de
eventos, de modo que podamos crear un objeto de dicha clase y el mismo objeto se
encargue de atender todos los eventos (objeto listener).

Para ello debemos crear una clase que implemente las interfaces de cada tipo de evento.
En el siguiente punto se indican las principales interfaces para manejar los eventos más
habituales.

public class ManejadorEventos implements ActionListener{

...

// código de la clase

//Método de la interface ActionListener que se ejecutará al capturar un


evento

@Override
public void actionPerformed(ActionEvent arg0) {

//Código del manejador de eventos

Una vez que tengamos una clase que sirva de manejador de eventos, asociamos un objeto
de dicha clase a cada componente sobre el que queramos responder a sus eventos:

ManejadorEventos listener = new ManejadorEventos();

boton.addActionListener(listener);

Tipos Eventos y sus Interfaces Listener


A continuación, se indican los tipos de eventos más habituales y las interfaces que
implementan métodos listener:

Tipo Evento Interface Descripción Métodos


ActionEvent ActionListener Al pulsar actionPerformed()
botones
KeyEvent KeyListener Al pulsar keyTyped();
teclas keyPressed();
keyReleased()
ListSelectionEvent ListSelectionListener Al valueChanged()
seleccionar o
deselecciona
r en una lista
WindowEvent WindowListener Al abrir o windowActivated();
cerrar windowClosed();
ventanas, o windowClosing();
cambiar el windowDeactivated(
icono );
windowDeiconified(
);
windowIconified();
windowOpened()
Tipo Evento Interface Descripción Métodos
FocusEvent FocusListener Cuando un focusGained();
elemento focusLost()
recibe el foco
MouseEvent MouseListener Cuando uso mouseClicked();
el ratón en mouseEntered();
algún mouseExited();
componente mousePressed();
mouseReleased()
ContainerEvent ContainerListener Cuando componentAdded();
añado o quito componentRemoved
elementos de ()
un
contenedor
TableModelEvent TableModelListener Al modificar tableChanged()
valores de
celdas
PropertyChangeEve PropertyChangeListen Al cambiar propertyChange()
nt er alguna
propiedad
del elemento
ChangeEvent ChangeListener Al realizar stateChange()
cualquier
cambio en el
elemento
ComponentEvent ComponentListener Al cambiar la componentHidden()
propiedad ;
visible o componentMoved();
redimension componentResized()
ar elementos ;
componentShown()

También podría gustarte