Contenidos
Java actionlistener
Un escuchador de eventos en Java está diseñado para procesar algún tipo de evento – “escucha” un evento, como el clic del ratón de un usuario o la pulsación de una tecla, y luego responde en consecuencia. Un escuchador de eventos debe estar conectado a un objeto de evento que define el evento.
Por ejemplo, los componentes gráficos como un JButton o un JTextField se conocen como fuentes de eventos. Esto significa que pueden generar eventos (llamados objetos de evento), como proporcionar un JButton para que un usuario haga clic, o un JTextField en el que un usuario puede introducir texto. El trabajo del escuchador de eventos es capturar esos eventos y hacer algo con ellos.
Para esta discusión, vamos a considerar un evento de ratón, es decir, cada vez que un usuario hace clic en algo con un ratón, representado por la clase Java MouseEvent. Para manejar este tipo de evento, primero se debe crear una clase MouseListener que implemente la interfaz Java MouseListener. Esta interfaz tiene cinco métodos; implemente el que se relaciona con el tipo de acción del ratón que usted anticipa que su usuario tomará. Estos son:
Como puedes ver, cada método tiene un único parámetro de objeto de evento: el evento particular del ratón que está diseñado para manejar. En tu clase MouseListener, te registras para “escuchar” cualquiera de estos eventos, de modo que se te informe cuando ocurran.
Eventos personalizados de Java
Un evento en Java es un objeto que se crea cuando algo cambia dentro de una interfaz gráfica de usuario. Si un usuario hace clic en un botón, en un cuadro combinado, o teclea caracteres en un campo de texto, etc., entonces se dispara un evento, creando el objeto de evento correspondiente. Este comportamiento forma parte del mecanismo de manejo de eventos de Java y está incluido en la biblioteca Swing GUI.
Por ejemplo, digamos que tenemos un JButton. Si un usuario hace clic en el JButton, se desencadena un evento de clic en el botón, se creará el evento y se enviará al oyente de eventos relevante (en este caso, el ActionListener). El escuchador relevante tendrá implementado el código que determina la acción a realizar cuando se produce el evento.
Hay varios tipos de eventos y oyentes en Java: cada tipo de evento está vinculado a un oyente correspondiente. Para esta discusión, vamos a considerar un tipo común de evento, un evento de acción representado por la clase Java ActionEvent, que se activa cuando un usuario hace clic en un botón o en el elemento de una lista.
En la acción del usuario, se crea un objeto ActionEvent correspondiente a la acción en cuestión. Este objeto contiene tanto la información del origen del evento como la acción específica realizada por el usuario. Este objeto de evento se pasa al método del objeto ActionListener correspondiente:
Qué es un oyente
El cambio de estado de un objeto se conoce como evento. Por ejemplo, hacer clic en un botón, arrastrar el ratón, etc. El paquete java.awt.event proporciona muchas clases de eventos e interfaces Listener para el manejo de eventos.
Una fuente produce un evento y lo envía con la fuente a uno o más escuchadores. Una vez que el oyente recibe el evento, éste será procesado y devuelto. Muchos paquetes de Java, como java.util, java.awt y java.awt.event, soportan eventos.
El AWT incluye una gran cantidad de clases y técnicas para construir y manejar aplicaciones como ventanas, botones, barras de desplazamiento, etc. El AWT fue concebido para proporcionar una colección prevalente de instrumentos de diseño de la interfaz gráfica de usuario capaz de trabajar en una multitud de plataformas.Las herramientas suministradas por el AWT se introducen utilizando el conjunto de herramientas de la interfaz gráfica de usuario autóctono de cada plataforma, manteniendo así el aspecto de cada plataforma. Esta es una de las ventajas de utilizar el AWT, pero la desventaja de esta estrategia es que, cuando se visualiza en otra plataforma, la GUI construida en una de ellas puede tener un aspecto distinto.
Ejemplo de escucha de eventos en Java
¿Cómo se crea un evento personalizado y cómo se dispara para que un componente pueda recibir un evento? Antes de ver un evento personalizado, veamos un evento preexistente: el ActionEvent.Componentes como el Button y el JButton disparan ActionEvents para indicar algún tipo de acción definida por el componente. Por ejemplo, el botón dispara un ActionEvent cada vez que el usuario lo presiona. El objetivo de un evento es informar a un oyente de que algo ha sucedido a un componente de la GUI. Un evento incluye toda la información que un oyente necesita para averiguar qué ha pasado y a quién le ha pasado (el qué y el quién del evento). Un evento debe dar suficiente información para describirse por completo. De este modo, un oyente puede averiguar qué ha sucedido exactamente y responder de forma significativa.
El componenteLos componentes generan eventos. Un evento es la forma que tiene un componente de hacer saber a un oyente que algo ha sucedido. Por lo tanto, un componente debe proporcionar un mecanismo para registrar y dar de baja a los oyentes de eventos. El componente también debe hacer un seguimiento de sus oyentes y pasar los eventos a esos oyentes. Sin embargo, un componente normalmente tendrá un addXXXListener y un removeXXXListener para cada tipo de evento que genere. Internamente, el componente puede almacenar un oyente como quiera; sin embargo, normalmente los componentes almacenan los oyentes en un java.util.Vector o javax.swing.event.EventList. Para lanzar un evento a sus oyentes, el componente simplemente recorre su lista de oyentes y pasa el evento a cada oyente llamando al método de envío de eventos del oyente.Es hora de un ejemplo:…