Manejo de eventos en Java: ¿Qué es eso y cómo funciona?

Publicado: 2020-03-21

Cualquier programa que tenga una interfaz gráfica de usuario o una GUI, incluida la aplicación Java para Windows, está controlado por eventos. Para que un programa como una aplicación Java sea útil, se requiere que proporcione una respuesta a los comandos o entradas del usuario. Las aplicaciones Java tienen eventos para capturar las acciones del usuario. Antes de discutir el manejo de eventos en Java, comencemos hablando de eventos.

Tabla de contenido

¿Qué es un evento?

Los eventos tienen el mismo significado e importancia en todos los lenguajes de programación. Son efectos externos que son controlados por el usuario y que hacen que su aplicación se comporte de acuerdo con la condición predefinida establecida para registrar su respuesta a las diferentes acciones del usuario. Un evento podría incluso denominarse como un objeto que cobra vida cuando se produce un cambio dentro de la GUI.

Los ejemplos de eventos en Java incluyen escribir caracteres o texto, hacer clic en un cuadro combinado, hacer clic en un botón o cualquier otra acción por parte del usuario. Cualquier acción de este tipo desencadena un evento, que luego da como resultado la creación del objeto de evento que es relevante para ese evento.

Por ejemplo, si un usuario ingresa algunos datos (acción del usuario que desencadena un evento), la aplicación produce una salida al mostrar un cuadro de diálogo o mostrar información (objeto de evento). Estos comportamientos relacionados con eventos son parte del mecanismo de manejo de eventos de Java y están presentes en la biblioteca GUI de Swing. Es importante tener en cuenta que la fuente de cada evento y el detector de eventos deben estar vinculados. Si este no es el caso, la activación de un evento no producirá ninguna acción.

¿Por qué un programa o una aplicación deben estar controlados por eventos?

Antes de que el manejo de eventos entrara en escena, un programa tenía que recopilar toda la información del usuario para saber qué estaba haciendo en un momento dado. Esto significa que después de ejecutarse o inicializarse, un programa siempre estaba en un gran bucle de repetición que esperaba que el usuario hiciera algo.

Entonces, el programa buscaba cualquier acción, desde presionar un botón hasta mover el control deslizante. Después de saber que algo había sucedido por parte del usuario, se preparó para dar la respuesta adecuada. Esto se conoce como sondeo. Aunque el sondeo hace el trabajo, la mayoría de las veces, se presenta como una tarea demasiado inmanejable y que consume mucho tiempo.

Leer: Preguntas y respuestas de la entrevista para desarrolladores de Java

Si consideramos usarlo para aplicaciones modernas, realmente no cumple con los requisitos. Dos razones principales hacen que el sondeo no sea adecuado para las aplicaciones modernas: el sondeo coloca todo el código relacionado con el evento dentro del bucle de repetición grande y las interacciones que tienen lugar dentro de esta ubicación son demasiado complejas. Además, el sondeo hace que un programa entre en un bucle sin fin, lo que da como resultado el agotamiento de los ciclos de la CPU sin ninguna garantía de acción por parte del usuario.

Abstract Window Toolkit o AWT se adelantó y se asoció con un modelo de trabajo diferente para resolver el problema discutido anteriormente. Este nuevo modelo es la programación dirigida por eventos. Con AWT, no es necesario que el programa busque eventos generados por el usuario. Es el tiempo de ejecución de Java el que hace este trabajo. Da a entender el programa tan pronto como se lleva a cabo un evento. Salva un recurso valioso del agotamiento y maneja mejor la interacción del usuario.

¿Qué son los controladores de eventos en Java y cómo funcionan?

Ahora analicemos el tema principal que nos propusimos tratar. ¿Cómo funciona el manejo de eventos en Java?

Como se mencionó anteriormente, los eventos son acciones del usuario o efectos externos que hacen que una aplicación se comporte de cierta manera. En Java, los componentes AWT, incluido el cuadro de texto, el botón y otros, son responsables de la generación de eventos. Tan pronto como se genera un evento, el oyente lo maneja y realiza la acción apropiada.

El manejo de eventos en Java comprende cuatro elementos. Estos incluso podrían denominarse controladores de eventos.

1. Fuente de eventos : una fuente de eventos que genera un evento es principalmente un componente AWT. Puede ejecutar el comando java.awt.component para conocer los componentes que pueden o no tener algún rol en la generación de eventos. Los componentes son la subclase de la clase fuente original. Las fuentes de eventos pueden ser cualquier cosa, desde cuadros de texto y cuadros combinados hasta botones, y más.

Leer: Arquitectura MVC en Java

2. Clases de eventos : en Java, estas son clases que representan casi todos los componentes que tienen algo que ver con la generación de eventos. Estos también se denominan tipos de eventos. Estas son algunas de las clases de eventos más comunes:

  • ActionEvent : esta clase de evento o tipo de evento representa un evento que implica hacer clic en un elemento gráfico, como un botón o un elemento de lista. El oyente relacionado con esta clase es ActionListener.
  • KeyEvent : esta clase de evento representa un evento que implica presionar y soltar una tecla. El oyente asociado con esta clase es KeyListener.
  • ContainerEvent : este tipo de evento representa un evento que ocurre con el contenedor de GUI. Esta clase está asociada con cualquier evento en el que la acción del usuario implique la adición o eliminación de objetos de la GUI. El oyente relacionado para esta clase es ContainerListener.
  • MouseEvent : Esta clase representa todos aquellos eventos que implican hacer clic o presionar el mouse. El oyente de esta clase es MouseListener.
  • WindowEvent : esta clase o tipo de evento representa eventos que involucran cualquier acción relacionada con una ventana. Cerrar, activar o desactivar una ventana se incluye en esta clase. El oyente relacionado para esta clase es WindowListener.

3. Oyentes de eventos : estas son interfaces de Java que proporcionan varios métodos que se pueden usar en diferentes clases implementadas. El trabajo de los detectores de eventos consiste en escuchar los eventos y luego procesarlos adecuadamente cuando se producen. Casi todos los componentes en Java tienen un oyente dedicado que maneja cualquier evento que genere ese componente. ActionListener maneja eventos que involucran listas, botones, campos de texto y menús.

4. Adaptadores de eventos : si un programa presenta demasiados métodos abstractos para que el oyente los anule, puede resultar difícil compilarlo. Por ejemplo, si queremos cerrar un marco, hay siete métodos abstractos de WindowListener que debemos anular. Para reducir la complejidad y la codificación pesada, Java tiene adaptadores de eventos. Los adaptadores de eventos ya son métodos abstractos anulados.

Conclusión

Es importante recordar que múltiples fuentes de eventos y oyentes pueden interactuar entre sí. Por lo tanto, múltiples eventos que pertenecen a la misma clase pueden ser manejados por un solo oyente. Esto significa que un oyente puede manejar todos esos eventos que involucran los mismos componentes que realizan acciones similares. De manera similar, un solo evento podría ser manejado por más de un oyente, solo si el diseño del programa lo permite.

¿Tiene sentido?

¿Sí?

¿No?

Póngase en contacto con nosotros para conocer una extensa sesión sobre el manejo de eventos en Java. ¡No te arrepentirías!

Si está interesado en obtener más información sobre Java para el desarrollo web, consulte el Diploma PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, Estado de ex alumnos de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.

Aterrice en el trabajo de sus sueños

UPGRAD Y DIPLOMA PG DE IIIT-BANGALORE EN DESARROLLO DE SOFTWARE
Aprende más