JavaFX : Construire des interfaces graphiques modernes en Java

Bienvenue dans cette documentation sur JavaFX, la bibliothèque d'interfaces graphiques standard pour Java. Ce site est conçu pour vous aider à comprendre et maîtriser JavaFX.

Qu'est-ce que JavaFX ?

JavaFX est une bibliothèque graphique qui permet de créer des interfaces utilisateur riches, interactives et modernes pour des applications Java. Elle remplace l'ancienne bibliothèque Swing et offre de nombreuses fonctionnalités avancées :

Le modèle du théâtre

JavaFX utilise un modèle conceptuel basé sur la métaphore du théâtre pour organiser ses composants :

Stage (Scène de théâtre)

Le Stage représente la fenêtre principale de l'application. C'est le conteneur de plus haut niveau.

Stage primaryStage = new Stage();
primaryStage.setTitle("Mon application JavaFX");
primaryStage.show();

Scene (Décor)

La Scene est contenue dans le Stage et contient à son tour tous les éléments graphiques. On peut changer de Scene pour montrer différentes vues.

VBox root = new VBox();
Scene scene = new Scene(root, 800, 600);
primaryStage.setScene(scene);

Nodes (Acteurs)

Les Node sont tous les éléments qui peuvent être placés dans une Scene : boutons, étiquettes, conteneurs, etc. Ils forment un graphe hiérarchique appelé "scene graph".

Label label = new Label("Bonjour JavaFX");
Button button = new Button("Cliquez-moi");
root.getChildren().addAll(label, button);

Java vs JavaFX

Concept Java Équivalent JavaFX Description
Variables Propriétés Les propriétés sont observables et peuvent déclencher des actions lorsqu'elles changent
Classes Nodes Les composants visuels héritent tous de la classe Node
Listeners EventHandlers Traitent les événements utilisateur comme les clics, frappes clavier, etc.
Annotations @FXML Permet d'injecter des éléments définis en FXML dans le code Java
Multithreading Platform.runLater() Exécute du code sur le thread JavaFX pour manipuler l'interface
Layouts (manuels) Conteneurs (automatiques) Les conteneurs gèrent automatiquement la disposition des éléments enfants

Plan du site

Conteneurs

Découvrez les différents types de conteneurs pour organiser votre interface : VBox, HBox, BorderPane, GridPane, etc.

Explorer

Contrôles

Apprenez à utiliser les contrôles de base et à gérer les événements : Label, Button, TextField, etc.

Explorer

Binding

Maîtrisez les propriétés et les bindings pour créer des interfaces réactives et synchronisées.

Explorer

FXML

Séparez la présentation et la logique avec FXML et utilisez les contrôleurs pour une architecture MVC.

Explorer

CSS

Stylisez vos interfaces JavaFX avec CSS pour un design personnalisé et attrayant.

Explorer

Exemple de base

Voici un exemple minimal d'application JavaFX :

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloWorld extends Application {
    @Override
    public void start(Stage primaryStage) {
        // Créer un conteneur
        StackPane root = new StackPane();
        
        // Ajouter un contrôle
        Label label = new Label("Bonjour, JavaFX !");
        root.getChildren().add(label);
        
        // Créer une scène
        Scene scene = new Scene(root, 300, 200);
        
        // Configurer le stage
        primaryStage.setTitle("Hello JavaFX");
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    
    public static void main(String[] args) {
        // Lancer l'application
        launch(args);
    }
}

Ce code va dans src/main/java/com/example/javafxdemo/HelloWorld.java

Éléments clés utilisés dans cet exemple: