un eventose puede definir como cambiar el estado de un objeto o comportamiento mediante la realización de acciones. Las acciones pueden ser hacer clic en un botón, mover el cursor, presionar una tecla a través del teclado o desplazarse por la página, etc.
El paquete java.awt.event se puede utilizar para proporcionar varias clases de eventos.
Clasificación de Eventos
- Eventos en primer plano
- Eventos de fondo
1. Eventos de primer plano
Los eventos de primer plano son los eventos que requieren la interacción del usuario para generarse, es decir, los eventos de primer plano se generan debido a la interacción del usuario en los componentes de la interfaz gráfica de usuario ( GUI ). Las interacciones no son más que hacer clic en un botón, desplazar la barra de desplazamiento, momentos del cursor, etc.
2. Eventos de fondo
Los eventos que no requieren la interacción de los usuarios para generarse se conocen como eventos de fondo. Ejemplos de estos eventos son fallas/interrupciones del sistema operativo, finalización de operaciones, etc.
Manejo de eventos
Es un mecanismo para controlar los eventos y decidir qué debe suceder después de que ocurra un evento . Para manejar los eventos, Java sigue el modelo de Delegación de Eventos.
Modelo de evento de delegación
- Tiene Fuentes y Oyentes.
- Fuente: los eventos se generan a partir de la fuente. Hay varias fuentes como botones, casillas de verificación, listas, elementos de menú, opciones, barra de desplazamiento, componentes de texto, ventanas, etc., para generar eventos.
- Oyentes: los oyentes se utilizan para manejar los eventos generados desde la fuente. Cada uno de estos oyentes representa interfaces que son responsables de manejar eventos.
Para realizar el manejo de eventos, necesitamos registrar la fuente con el oyente.
Registro de la fuente con el oyente
Diferentes clases proporcionan diferentes métodos de registro.
Sintaxis:
addTypeListener()
donde Tipo representa el tipo de evento.
Ejemplo 1: Para KeyEvent usamos addKeyListener() para registrarse.
Ejemplo 2: que para ActionEvent usamos addActionListener() para registrarnos.
Clases de eventos en Java
Clase de evento |
Interfaz de escucha |
Descripción |
---|---|---|
Evento de acción |
ActionListener |
Un evento que indica que se produjo una acción definida por un componente, como hacer clic en un botón o seleccionar un elemento de la lista de elementos del menú. |
Evento de ajuste |
AjusteOyente |
El evento de ajuste es emitido por un objeto ajustable como la barra de desplazamiento. |
Evento de componente |
ComponentListener |
Un evento que indica que un componente se movió, cambió el tamaño o cambió su visibilidad. |
ContenedorEvento |
ContainerListener |
Cuando se agrega un componente a un contenedor (o) se elimina de él, un objeto contenedor genera este evento. |
Evento de enfoque |
FocusListener |
Estos son eventos relacionados con el enfoque, que incluyen enfoque, enfoque, enfoque y desenfoque. |
ArtículoEvento |
ItemListener |
Un evento que indica si un elemento fue seleccionado o no. |
Evento clave |
KeyListener |
Un evento que ocurre debido a una secuencia de pulsaciones de teclas en el teclado. |
RatónEvento |
MouseListener & MouseMotionListener |
Los eventos que ocurren debido a la interacción del usuario con el ratón (Dispositivo Señalador). |
RatónRuedaEvento |
RatónRuedaOyente |
Un evento que especifica que la rueda del mouse se giró en un componente. |
Evento de texto |
Oyente de texto |
Un evento que ocurre cuando cambia el texto de un objeto. |
VentanaEvento |
WindowListener |
Un evento que indica si una ventana ha cambiado de estado o no. |
Nota: As Interfaces contiene métodos abstractos que deben ser implementados por la clase registrada para manejar eventos.
Las diferentes interfaces consisten en diferentes métodos que se especifican a continuación.
Interfaz de escucha |
Métodos |
---|---|
ActionListener |
|
AjusteOyente |
|
ComponentListener |
|
ContainerListener |
|
FocusListener |
|
ItemListener |
|
KeyListener |
|
MouseListener |
|
MouseMotionListener |
|
RatónRuedaOyente |
|
Oyente de texto |
|
WindowListener |
|
Flujo de manejo de eventos
- Se requiere la interacción del usuario con un componente para generar un evento.
- El objeto de la clase de evento respectiva se crea automáticamente después de la generación del evento y contiene toda la información del origen del evento.
- El objeto recién creado se pasa a los métodos del oyente registrado.
- El método se ejecuta y devuelve el resultado.
Enfoques de código
Los tres enfoques para realizar el manejo de eventos consisten en colocar el código de manejo de eventos en uno de los lugares especificados a continuación.
- dentro de la clase
- otra clase
- Clase anónima
Nota: use cualquier IDE o instale JDK para ejecutar el código, el compilador en línea puede arrojar errores debido a la falta de disponibilidad de algunos paquetes.
Manejo de eventos dentro de la clase
Java
// Java program to demonstrate the // event handling within the class import java.awt.*; import java.awt.event.*; class GFG extends Frame implements ActionListener { TextField textField; GFGTop() { // Component Creation textField = new TextField(); // setBounds method is used to provide // position and size of the component textField.setBounds(60, 50, 180, 25); Button button = new Button("click Here"); button.setBounds(100, 120, 80, 30); // Registering component with listener // this refers to current instance button.addActionListener(this); // add Components add(textField); add(button); // set visibility setVisible(true); } // implementing method of actionListener public void actionPerformed(ActionEvent e) { // Setting text to field textField.setText("GFG!"); } public static void main(String[] args) { new GFGTop(); } }
Producción
Explicación
- En primer lugar, extienda la clase con el applet e implemente el oyente respectivo.
- Cree componentes de campo de texto y botón.
- Registrado el componente del botón con el evento respectivo. es decir, ActionEvent por addActionListener().
- Al final, implemente el método abstracto.
Manejo de eventos por otra clase
Java
// Java program to demonstrate the // event handling by the other class import java.awt.*; import java.awt.event.*; class GFG1 extends Frame { TextField textField; GFG2() { // Component Creation textField = new TextField(); // setBounds method is used to provide // position and size of component textField.setBounds(60, 50, 180, 25); Button button = new Button("click Here"); button.setBounds(100, 120, 80, 30); Other other = new Other(this); // Registering component with listener // Passing other class as reference button.addActionListener(other); // add Components add(textField); add(button); // set visibility setVisible(true); } public static void main(String[] args) { new GFG2(); } }
Java
/// import necessary packages import java.awt.event.*; // implements the listener interface class Other implements ActionListener { GFG2 gfgObj; Other(GFG1 gfgObj) { this.gfgObj = gfgObj; } public void actionPerformed(ActionEvent e) { // setting text from different class gfgObj.textField.setText("Using Different Classes"); } }
Producción
Gestión de eventos por clase anónima
Java
// Java program to demonstrate the // event handling by the anonymous class import java.awt.*; import java.awt.event.*; class GFG3 extends Frame { TextField textField; GFG3() { // Component Creation textField = new TextField(); // setBounds method is used to provide // position and size of component textField.setBounds(60, 50, 180, 25); Button button = new Button("click Here"); button.setBounds(100, 120, 80, 30); // Registering component with listener anonymously button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Setting text to field textField.setText("Anonymous"); } }); // add Components add(textField); add(button); // set visibility setVisible(true); } public static void main(String[] args) { new GFG3(); } }
Producción
Publicación traducida automáticamente
Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA