Introduction
Ce didacticiel complet guide les développeurs Java dans le processus d'importation et de configuration de JavaFX dans leurs projets Java. Que vous soyez un débutant ou un programmeur expérimenté, vous apprendrez les étapes essentielles pour intégrer JavaFX, un puissant framework (cadre) pour créer des interfaces utilisateur graphiques riches et interactives dans les applications Java.
Principes de base de JavaFX
Qu'est-ce que JavaFX?
JavaFX est une plateforme cliente moderne et riche pour la création d'applications de bureau, mobiles et web multiplateformes utilisant Java. Il offre un ensemble complet de packages graphiques et multimédias qui permettent aux développeurs de créer des interfaces utilisateur sophistiquées et des applications interactives.
Principales fonctionnalités de JavaFX
JavaFX propose plusieurs fonctionnalités puissantes pour le développement d'applications :
| Fonctionnalité | Description |
|---|---|
| Contrôles d'interface utilisateur riches | Ensemble étendu de composants d'interface utilisateur préconstruits |
| Mise en forme CSS | Permet de styliser les applications à l'aide de CSS |
| Graphe de scène | Rendu efficace des éléments graphiques |
| Prise en charge de FXML | Langage basé sur XML pour définir les interfaces utilisateur |
| Intégration multimédia | Prise en charge intégrée de l'audio, de la vidéo et du contenu web |
Aperçu de l'architecture
graph TD
A[JavaFX Application] --> B[Scene Graph]
B --> C[Stage]
B --> D[Scene]
D --> E[UI Controls]
D --> F[Layout Containers]
Composants de base
Fenêtre principale (Stage) et scène (Scene)
Stagereprésente le conteneur de niveau supérieur (fenêtre)Sceneest le conteneur de tout le contenu dans une application JavaFX
Exemple d'application JavaFX minimale
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloFXApp extends Application {
@Override
public void start(Stage primaryStage) {
Label label = new Label("Hello, JavaFX!");
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("LabEx JavaFX Tutorial");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Quand utiliser JavaFX
JavaFX est idéal pour :
- Le développement d'applications de bureau
- Les interfaces clientes riches
- La visualisation de données
- Les applications multimédias interactives
- Le développement d'interfaces graphiques utilisateur multiplateformes
Avantages
- Capacités d'interface utilisateur modernes
- Prise en charge graphique étendue
- Facile intégration avec le code Java existant
- Compatibilité multiplateforme
- Conception d'interface utilisateur déclarative avec FXML
En comprenant ces principes de base, les développeurs peuvent commencer à créer des applications puissantes et esthétiquement attrayantes avec JavaFX.
Configuration du projet
Prérequis
Avant de configurer un projet JavaFX, assurez-vous d'avoir installé les éléments suivants sur Ubuntu 22.04 :
| Exigence | Version recommandée |
|---|---|
| JDK Java | 11 ou supérieur |
| Maven | 3.6+ |
| IDE | IntelliJ IDEA ou Eclipse |
Méthodes de configuration
Méthode 1 : Configuration avec Maven
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.labex</groupId>
<artifactId>javafx-project</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<javafx.version>17.0.2</javafx.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
</dependencies>
</project>
Méthode 2 : Configuration avec Gradle
plugins {
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.10'
}
javafx {
version = "17.0.2"
modules = [ 'javafx.controls', 'javafx.fxml' ]
}
Structure du projet
graph TD
A[Project Root] --> B[src]
A --> C[pom.xml]
B --> D[main]
D --> E[java]
D --> F[resources]
E --> G[Application Classes]
F --> H[FXML Files]
Configuration en ligne de commande
Installer OpenJFX sur Ubuntu
## Update package list
sudo apt update
## Install OpenJDK
sudo apt install openjdk-11-jdk
## Install Maven
sudo apt install maven
## Verify installations
java --version
mvn --version
Gestion des dépendances
Dépendances des modules JavaFX
| Module | But |
|---|---|
| javafx-controls | Contrôles d'interface utilisateur de base |
| javafx-fxml | Prise en charge de FXML |
| javafx-graphics | Rendu graphique |
| javafx-media | Lecture multimédia |
| javafx-web | Intégration de la vue web |
Configuration de la construction et de l'exécution
Commandes de construction avec Maven
## Clean project
mvn clean
## Compile project
mvn compile
## Run JavaFX application
mvn javafx:run
Intégration dans un IDE
Configuration d'IntelliJ IDEA
- Installer le plugin "JavaFX"
- Ajouter le SDK JavaFX à la structure du projet
- Configurer les dépendances du module
Configuration d'Eclipse
- Installer le plugin "e(fx)clipse"
- Configurer la bibliothèque d'exécution JavaFX
- Définir le chemin des modules dans les paramètres du projet
Bonnes pratiques
- Utiliser la dernière version stable de JavaFX
- Gérer les dépendances avec soin
- Garder le chemin des modules propre
- Utiliser des outils de construction pour une configuration cohérente
En suivant ces étapes de configuration, vous pouvez configurer avec succès un projet JavaFX dans l'environnement de développement LabEx.
Première application JavaFX
Création d'une application JavaFX de base
Configuration du projet
## Create project directory
mkdir labex-javafx-demo
cd labex-javafx-demo
## Initialize Maven project
mvn archetype:generate \
-DgroupId=com.labex \
-DartifactId=javafx-demo \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
Structure de l'application
graph TD
A[Project Root] --> B[src/main/java]
B --> C[Main Application Class]
B --> D[Controller Classes]
A --> E[pom.xml]
Exemple d'application JavaFX complète
Classe principale de l'application
package com.labex;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class JavaFXDemoApp extends Application {
@Override
public void start(Stage primaryStage) {
// Create UI Components
Button clickButton = new Button("Click Me!");
VBox root = new VBox(10);
root.getChildren().add(clickButton);
// Configure Button Action
clickButton.setOnAction(event -> {
System.out.println("Button Clicked in LabEx JavaFX Demo!");
});
// Create and Configure Scene
Scene scene = new Scene(root, 300, 200);
primaryStage.setTitle("LabEx JavaFX Demo");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Types de composants d'interface utilisateur
| Composant | Description | Cas d'utilisation |
|---|---|---|
| Button | Élément cliquable interactif | Déclenchement d'actions |
| Label | Affichage de texte | Affichage d'informations |
| TextField | Saisie de texte par l'utilisateur | Collecte de données utilisateur |
| CheckBox | Sélection binaire | Choix multiples |
| ComboBox | Sélection dans une liste déroulante | Sélection à partir d'une liste |
Gestion des événements
Types d'événements
graph LR
A[JavaFX Events] --> B[Mouse Events]
A --> C[Keyboard Events]
A --> D[Window Events]
A --> E[Action Events]
Gestion avancée des événements
// Lambda Expression Event Handling
button.setOnMouseClicked(event -> {
switch(event.getButton()) {
case PRIMARY:
System.out.println("Left Click");
break;
case SECONDARY:
System.out.println("Right Click");
break;
}
});
Mise en forme des applications JavaFX
CSS en ligne
button.setStyle(
"-fx-background-color: #3498db;" +
"-fx-text-fill: white;" +
"-fx-font-size: 14px;"
);
Configuration des dépendances Maven
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>17.0.2</version>
</dependency>
</dependencies>
Exécution de l'application
## Compile the project
mvn clean compile
## Run JavaFX application
mvn javafx:run
Bonnes pratiques
- Séparer l'interface utilisateur et la logique
- Utiliser FXML pour les mises en page complexes
- Implémenter une gestion d'événements appropriée
- Utiliser CSS pour la mise en forme
- Suivre les méthodes du cycle de vie de JavaFX
En suivant ces étapes, vous pouvez créer votre première application JavaFX interactive dans l'environnement de développement LabEx.
Résumé
En suivant ce didacticiel, les développeurs Java peuvent importer avec succès JavaFX dans leurs projets, comprendre les techniques de configuration des projets et créer leur première application JavaFX. Ce guide fournit une base solide pour la création d'interfaces graphiques modernes et réactives en utilisant le cadre (framework) de développement d'interface graphique avancé de Java.



