Java – Crear una interfaz gráfica con JavaFX

Crear una interfaz gráfica con JavaFX es fácil. Esta biblioteca te permite diseñar, crear, probar y desplegar aplicaciones GUI multiplataforma. Con JavaFX se pueden crear ventanas o interfaces gráficas para el usuario para aplicaciones de escritorio. Está pensado para reemplazar a Swing como la biblioteca de GUI estándar para Java. Con la llegada de nuevos sistemas operativos y monitores con mucha mayor resolución, Swing ha quedado muy rezagado.

» Ver actualización del ejemplo

Características de JavaFX

Las siguientes son las características clave de JavaFX que lo hacen un buen candidato para cualquier desarrollo de aplicaciones de escritorio:

  • Viene con una gran cantidad de componentes de interfaz como TableView, ListView, WebView, Form Controls, DatePicker, etc.
  • Todos los componentes de la interfaz de usuario en JavaFx se pueden diseñar mediante CSS.
  • Puede usar FXML, un lenguaje basado en XML para crear la interfaz de usuario de tu aplicación.
  • La herramienta Scene Builder de JavaFX le permite diseñar interfaces de usuario sin necesidad de escribir código. Contiene una interfaz WYSIWYG de arrastrar y soltar mediante la cual se puede crear el diseño de la GUI. Esta herramienta se puede integrar en todos los IDE principales como Netbeans, IntelliJ y Eclipse.
  • Tiene características de gráficos 3D para crear formas como Caja, Cilindro, Esfera, etc.
  • Puede crear paquetes instalables nativos de aplicaciones JavaFX para todos los principales sistemas operativos. Estos paquetes brindan la misma experiencia de lanzamiento que cualquier aplicación nativa para ese sistema operativo.

Te mostramos un ejemplo sencillo:

package com.decodigo;

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

/**
 *
 * @author decodigo.com
 */
public class EjemploJavaFX extends Application {
    @Override
    public void init() throws Exception {
        super.init();
        System.out.println("Realice las inicializaciones necesarias aquí.");
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        Label etiqueta = new Label("Hola Mundo");
        etiqueta.setAlignment(Pos.CENTER);
        Scene scene = new Scene(etiqueta, 500, 350);

        primaryStage.setTitle("Aplicación Hola Mundo");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    @Override
    public void stop() throws Exception {
        super.stop();
        System.out.println("Destruye los recursos. Realice limpieza.");
    }

    public static void main(String[] args) {
        launch(args);
    }
}

La clase principal de cualquier aplicación JavaFX debe extender de la clase javafx.application.Application e implementar su método start(). El método start() es el punto de partida para la ejecución de una aplicación JavaFX.

Si ejecutas el ejemplo un simple Hola Mundo en una pequeña ventana se desplegará en tu pantalla.

Crear una interfaz gráfica con JavaFX

Si estás en Linux, probablemente obtendrás este error al ejecutar el programa:

Failed to load module "canberra-gtk-module"

Entonces, deberás ejecutar el siguiente comando en la terminal para descargar el módulo libcanberra-gtk y resolverlo:

sudo apt install libcanberra-gtk-module libcanberra-gtk3-module

Como puedes ver, esto es sólo un ejemplo sencillo de como crear una interfaz gráfica con JavaFX. Próximamente agregaremos más ejemplos con componentes que permiten al usuario ver o introducir datos como cajas de texto y botones.

Ver la documentación oficial: https://docs.oracle.com/javase/8/javase-clienttechnologies.htm

Más información en inglés: https://geekole.com/create-a-graphic-interface-with-javafx/