Comenzando con javafx

Programa Hola Mundo

El siguiente código crea una interfaz de usuario simple que contiene un solo “Botón” que imprime una “Cadena” en la consola al hacer clic.

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {

    @Override
    public void start(Stage primaryStage) {
        // create a button with specified text
        Button button = new Button("Say 'Hello World'");

        // set a handler that is executed when the user activates the button
        // e.g. by clicking it or pressing enter while it's focused
        button.setOnAction(e -> {
           //Open information dialog that says hello
           Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?");
           alert.showAndWait();
        });

        // the root of the scene shown in the main window
        StackPane root = new StackPane();

        // add button as child of the root
        root.getChildren().add(button);

        // create a scene specifying the root and the size
        Scene scene = new Scene(root, 500, 300);

        // add scene to the stage
        primaryStage.setScene(scene);

        // make the stage visible
        primaryStage.show();
    }

    public static void main(String[] args) {
        // launch the HelloWorld application.

        // Since this method is a member of the HelloWorld class the first
        // parameter is not required
        Application.launch(HelloWorld.class, args);
    }

}

La clase Application es el punto de entrada de cada aplicación JavaFX. Solo se puede iniciar una ‘Aplicación’ y esto se hace usando

Application.launch(HelloWorld.class, args);

Esto crea una instancia de la clase ‘Aplicación’ pasada como parámetro e inicia la plataforma JavaFX.

Lo siguiente es importante para el programador aquí:

  1. Primero launch crea una nueva instancia de la clase Application (HelloWorld en este caso). Por lo tanto, la clase Aplicación necesita un constructor sin argumentos.
  2. Se llama a init() en la instancia de Application creada. En este caso, la implementación predeterminada de Aplicación no hace nada.
  3. Se llama a start para la instancia de Appication y se pasa el Stage principal (= ventana) al método. Este método se llama automáticamente en el hilo de la aplicación JavaFX (hilo de la plataforma).
  4. La aplicación se ejecuta hasta que la plataforma determina que es hora de apagarse. Esto se hace cuando se cierra la última ventana en este caso.
  5. El método stop se invoca en la instancia Application. En este caso, la implementación de Application no hace nada. Este método se llama automáticamente en el hilo de la aplicación JavaFX (hilo de la plataforma).

En el método start se construye el escenario gráfico. En este caso contiene 2 Nodos: Un Botón y un StackPane.

El Button representa un botón en la interfaz de usuario y StackPane es un contenedor para el Button que determina su ubicación.

Se crea una ‘Escena’ para mostrar estos ‘Nodos’. Finalmente, la ‘Escena’ se agrega al ‘Escenario’, que es la ventana que muestra toda la interfaz de usuario.

Instalación o Configuración

Las API de JavaFX están disponibles como una característica totalmente integrada de la Java SE Runtime Environment (JRE) y Java Development Kit (JDK). Debido a que el JDK está disponible para todas las principales plataformas de escritorio (Windows, Mac OS X y Linux), aplicaciones JavaFX compiladas para JDK 7 y posterior también se ejecuta en todas las principales plataformas de escritorio. Soporte para plataformas ARM también está disponible con JavaFX 8. JDK para ARM incluye el Componentes básicos, gráficos y de control de JavaFX.

Para instalar JavaFX, instale la versión elegida del entorno de tiempo de ejecución de Java y el kit de desarrollo de Java.

Las características que ofrece JavaFX incluyen:

  1. API de Java.
  2. FXML y creador de escenas.
  3. WebView.
  4. Interoperabilidad de oscilaciones.
  5. Controles de interfaz de usuario y CSS integrados.
  6. Tema de Módena.
  7. Funciones de gráficos 3D.
  8. API de lienzo.
  9. API de impresión.
  10. Soporte de texto enriquecido.
  11. Soporte multitáctil.
  12. Soporte de alta DPI.
  13. Canalización de gráficos acelerados por hardware.
  14. Motor multimedia de alto rendimiento.
  15. Modelo de implementación de aplicaciones autónomas.