JavaFX 11 con módulos

En esta ocasión traigo un ejemplo básico utilizando JavaFX. He podido realizar algunos proyectos laborales con esta tecnología y la encuentro muy entretenida así que vamos a lo que importa.

Los siguientes pasos muestran cómo obtener y ejecutar el ejemplo, el cúal es un semáforo que cambia de color al presionar el clic izquierdo del mouse. Para construirlo utilizo Java 11, Maven, FXML y JPMS (luego explico algunas cosas):
  1. Tener instalado Java 11
  2. Es muy importante leer el Getting Started with JavaFX 11 si nunca hemos usado JavaFX antes.
  3. Descargar el código del ejemplo desde GitHub
  4. Para lanzar la aplicación ejecutar el siguiente comando en el proyecto descargado:
    mvn compile exec:java
    
  5. Para generar el JAR del proyecto:
    mvn clean package 
  6. Luego para lanzar el JAR generado:
    java --module-path  target/semaforo-fx-1.0-SNAPSHOT.jar:target/lib/  --module com.sebastian.semaforo.fx/com.sebastian.semaforo.fx.SemaforoFX
    
  7. El resultado luego de ser lanzado es el siguiente (está horizontal para verlo con la pantalla en posición vertical 😁):

Eso es todo 😮, si presionamos el clic izquierdo cambiará de color 😊 (no pondré las imágenes para que lo hagan en casa 😆) .


Ahora, luego de haber lanzado e interactuado con la aplicación, si tienen interés en conocer un poco más sobre la construcción del código les cuento lo siguiente:

  • En JavaFX se pueden construir controles (botones, tablas, círculos, ...) directamente desde el código fuente y también existe el formato FXML para poder externalizar la definición de la vista con los controles (es algo como XML que puede ser editada). Para esta última opción existe una herramienta llamada SceneBuilder que nos permite abstraernos del código fuente arrastrando y soltando los controles que necesitamos y también definiendo sus propiedades (semaforo.fxml):
 

  • Luego de crear nuestro archivo FXML generamos su controlador asociado (SemaforoController.java): un archivo Java que tiene inyectados los elementos que definimos con id en la vista, el cual puede ser generado desde el SceneBuilder: 




  • Junto con el FXML y su controlador generamos la clase que se encarga de lanzar la aplicación SemaforoFX.java:
  • La idea en JavaFX es algo similar a una escena de teatro: un Stage tiene un Scene que pude ser intercambiada y que a su vez se compone de uno o más Node (no se si es algo de un teatro 😓 pero componen la escena como la escenografía o los actores).
  • El pom está configurado para copiar las dependencias en la carpeta lib del target y también tiene indicada la clase que se lanza con el comando del paso 4
    exec:java
  • Personalmete, para crear aplicaciones con JavaFX me gusta utilizar Netbeans por que tiene la opción Make Controller, la cual permite generar el controlador si no existe y lo actualiza si está definido (cuando utilicé e(fx)clipse no permitía actualizar el controlador)
 


 Ahora si, eso es todo por ahora 😁

No hay comentarios.:

Publicar un comentario