Contenidos
Java changelistener
Las API fundamentales de Java, como Abstract Window Toolkit (AWT) y Swing, por no hablar de Java Media Framework (JMF), Java Platform Debugger Architecture (JPDA) y JavaBeans, dependen en gran medida de los eventos. Los eventos son una parte integral de la plataforma Java. En este artículo, presentaré los conceptos que hay detrás de las aplicaciones basadas en eventos y veré varios métodos de manejo de eventos. A continuación, hablaré de algunas técnicas genéricas que se pueden utilizar para simplificar la tarea de manejar eventos.
Programación con eventosLos eventos no son exclusivos de la plataforma Java; existían antes de Java y fueron popularizados por interfaces gráficas de usuario como Windows y el sistema X Window. Estos sistemas de uso intensivo de gráficos son manejados por el usuario con eventos. En cambio, con el modelo de programación tradicional, la aplicación controla el flujo del programa. Este flujo está predeterminado por las sentencias y condiciones que se codifican (Figura A).
Un ejemplo de este tipo de aplicación es una utilidad de línea de comandos. Una vez invocada la utilidad, realiza su función dependiendo sólo de los comandos dados y según la lógica codificada, independientemente de cualquier factor externo.
Ejemplo de escucha de eventos en Java
Los tutoriales de Java han sido escritos para el JDK 8. Los ejemplos y las prácticas descritas en esta página no aprovechan las mejoras introducidas en versiones posteriores y pueden utilizar tecnología que ya no está disponible.Consulte los cambios en el lenguaje Java para obtener un resumen de las características actualizadas del lenguaje en Java SE 9 y las versiones posteriores.Consulte las notas de la versión del JDK para obtener información sobre las nuevas características, las mejoras y las opciones eliminadas o obsoletas de todas las versiones del JDK.
El modelo de eventos, que ha visto en su forma más simple en el ejemplo anterior, es bastante potente y flexible. Cualquier número de objetos escuchadores de eventos pueden escuchar todo tipo de eventos desde cualquier número de objetos fuente de eventos. Por ejemplo, un programa puede crear un oyente por cada fuente de eventos. O un programa puede tener un único receptor para todos los eventos de todas las fuentes. Un programa puede incluso tener más de un receptor para un solo tipo de evento de una sola fuente de eventos.
Cada evento está representado por un objeto que da información sobre el evento e identifica la fuente del mismo. Las fuentes de eventos suelen ser componentes o modelos, pero otros tipos de objetos también pueden ser fuentes de eventos.
Eventos Java swing
Su aplicación puede configurar tipos de eventos predefinidos en tiempo de inicio o añadir dinámicamente tipos de eventos en tiempo de ejecución mediante la API o la sintaxis EPL. Consulte la Sección 15.4, “Elementos de configuración” para la configuración en tiempo de inicio y la Sección 14.3.8, “Configuración en tiempo de ejecución” para la API de configuración en tiempo de ejecución.
Si su aplicación utiliza java.util.Map, Object[] (object-array) o XML para representar eventos, los nombres de las propiedades de los eventos pueden contener el carácter punto (‘.’). El carácter barra invertida (‘\’) se puede utilizar para escapar de los caracteres de punto en los nombres de propiedades, permitiendo que un nombre de propiedad contenga caracteres de punto.
En ocasiones, las propiedades de los eventos pueden solaparse con palabras clave del lenguaje EPL o contener espacios u otros caracteres especiales. En este caso puede utilizar el carácter de apóstrofe ` (también conocido como tilde) para escapar del nombre de la propiedad.
El siguiente EPL selecciona las propiedades de evento que tienen nombres que contienen espacios (por ejemplo, libro candidato), tienen el carácter especial de tilde (por ejemplo, libros para niños), son una propiedad indexada (por ejemplo, libros para niños[0]) y una propiedad mapeada
Manejador de eventos 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., se desencadena un evento y se crea 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: