Curso de JavaFX | Detectar y procesar el click sobre un botón 1

Curso de JavaFX
Detectar y procesar el click sobre un botón

Curso de JavaFX | Detectar y procesar el click sobre un botón 2

En esta lección aprenderás a detectar y gestionar eventos de clic sobre un botón en JavaFX. Veremos cómo asociar una acción a un botón, cómo simplificar el código usando funciones lambda y cómo acceder al elemento que desencadena el evento. ¡Empecemos!

Detectar eventos con setOnAction

El método setOnAction permite asociar un manejador de eventos a un botón. Un manejador de eventos es un bloque de código que se ejecuta cuando ocurre un evento, como hacer clic en el botón.

Button btn = new Button("Púlsame");
btn.setOnAction(new EventHandler<ActionEvent>() {
 @Override
 public void handle(ActionEvent event) {
  System.out.println("hola");
 }   
});
root.getChildren().add(btn);

¿Qué está pasando aquí?

  1. Crear un botón: Se crea un botón con el texto "Púlsame".
  2. Asociar el evento: Usamos el método setOnAction para establecer el manejador.
  3. Definir la acción: La acción definida imprime "hola" en la consola cada vez que el botón es presionado.
  4. Añadir a la escena: El botón se agrega al contenedor raíz de la interfaz.

Usando lambdas (funciones anónimas):

Java 8 introdujo las expresiones lambda, que permiten escribir el código de forma más concisa. Al usar lambdas, no es necesario declarar explícitamente la clase EventHandler ni el método handle.

btn.setOnAction(event -> System.out.println("hola"));

Ventajas de las lambdas:

  • Código más corto y legible.
  • Ideal para acciones simples.

Acceder al elemento con el que acabamos de interactuar

En ocasiones, es útil identificar el botón u otro elemento que generó el evento. Esto se logra mediante el método getTarget.

public static void btnPulsado(Event e) {
 Button b = (Button) e.getTarget();
 ...
}

¿Cómo funciona?

  1. Obtener el origen del evento: e.getTarget() devuelve el objeto que generó el evento.
  2. Convertir al tipo esperado: En este caso, hacemos un cast a Button para trabajar con el botón.

Resumen

  • Aprendiste a usar setOnAction para manejar eventos de clic en un botón.
  • Simplificaste el código usando expresiones lambda.
  • Descubriste cómo identificar el elemento que genera el evento usando getTarget.

Con estos conocimientos, ya puedes capturar y procesar interacciones del usuario en tu interfaz JavaFX. En la próxima lección, exploraremos cómo trabajar con layouts para estructurar tus aplicaciones. ¡Sigue practicando!