Premiers pas avec javafx

Programme Hello World

Le code suivant crée une interface utilisateur simple contenant un seul Button qui imprime une String sur la console lors d’un 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 classe “Application” est le point d’entrée de chaque application JavaFX. Une seule Application peut être lancée et ceci est fait en utilisant

Application.launch(HelloWorld.class, args);

Cela crée une instance de la classe Application passée en paramètre et démarre la plateforme JavaFX.

Ce qui suit est important pour le programmeur ici :

  1. Tout d’abord, launch crée une nouvelle instance de la classe Application (HelloWorld dans ce cas). La classe Application a donc besoin d’un constructeur sans argument.
  2. init() est appelé sur l’instance Application créée. Dans ce cas, l’implémentation par défaut de Application ne fait rien.
  3. start est appelé pour l’instance Appication et le Stage primaire (= fenêtre) est passé à la méthode. Cette méthode est automatiquement appelée sur le thread JavaFX Application (Platform thread).
  4. L’application s’exécute jusqu’à ce que la plate-forme détermine qu’il est temps de s’arrêter. Ceci est fait lorsque la dernière fenêtre est fermée dans ce cas.
  5. La méthode stop est appelée sur l’instance Application. Dans ce cas, l’implémentation de Application ne fait rien. Cette méthode est automatiquement appelée sur le thread JavaFX Application (Platform thread).

Dans la méthode start, le graphe scénique est construit. Dans ce cas, il contient 2 Nodes : un Button et un StackPane.

Le Button représente un bouton dans l’interface utilisateur et le StackPane est un conteneur pour le Button qui détermine son emplacement.

Une Scene est créée pour afficher ces Nodes. Enfin, la Scene est ajoutée à la Stage qui est la fenêtre qui affiche l’ensemble de l’interface utilisateur.

Installation ou configuration

Les API JavaFX sont disponibles en tant que fonctionnalité entièrement intégrée du Java SE Runtime Environment (JRE) et le kit de développement Java (JDK). Parce que le JDK est disponible pour toutes les principales plates-formes de bureau (Windows, Mac OS X et Linux), applications JavaFX compilées avec JDK 7 et versions ultérieures fonctionne également sur toutes les principales plates-formes de bureau. Prise en charge des plates-formes ARM est également disponible avec JavaFX 8. JDK pour ARM inclut le composants de base, graphiques et contrôles de JavaFX.

Pour installer JavaFX, installez la version de votre choix de l’environnement d’exécution Java et du [kit de développement Java][1].

Les fonctionnalités offertes par JavaFX incluent :

  1. API Java.
  2. FXML et générateur de scènes.
  3. WebView.
  4. Interopérabilité du swing.
  5. Contrôles d’interface utilisateur intégrés et CSS.
  6. Thème Modène.
  7. Fonctionnalités graphiques 3D.
  8. API de canevas.
  9. API d’impression.
  10. Prise en charge du texte enrichi.
  11. Prise en charge multipoint.
  12. Prise en charge Hi-DPI.
  13. Pipeline graphique accéléré par le matériel.
  14. Moteur multimédia haute performance.
  15. Modèle de déploiement d’applications autonome.

[1] : http://www.oracle.com/technetwork/java/javase/downloads/index.html