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 :
- Un modèle de conteneurs hiérarchique et flexible
- Des contrôles graphiques modernes et personnalisables
- Un système d'événements puissant
- La séparation de la présentation et de la logique avec FXML
- La personnalisation via CSS
- Un système de propriétés et de binding réactif
- Des animations et effets visuels
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.
ExplorerContrôles
Apprenez à utiliser les contrôles de base et à gérer les événements : Label, Button, TextField, etc.
ExplorerBinding
Maîtrisez les propriétés et les bindings pour créer des interfaces réactives et synchronisées.
ExplorerFXML
Séparez la présentation et la logique avec FXML et utilisez les contrôleurs pour une architecture MVC.
ExplorerExemple 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:
- Application - Classe de base pour toutes les applications JavaFX
- Label - Composant d'affichage de texte
- StackPane - Conteneur qui empile ses enfants au centre