Comment importer JavaFX dans un projet Java

JavaJavaBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ProgrammingTechniquesGroup(["Programming Techniques"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java/ProgrammingTechniquesGroup -.-> java/method_overloading("Method Overloading") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/constructors("Constructors") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/modifiers("Modifiers") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("Packages / API") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/user_input("User Input") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/oop("OOP") subgraph Lab Skills java/method_overloading -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} java/classes_objects -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} java/constructors -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} java/modifiers -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} java/packages_api -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} java/user_input -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} java/oop -.-> lab-421855{{"Comment importer JavaFX dans un projet Java"}} end

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)

  • Stage représente le conteneur de niveau supérieur (fenêtre)
  • Scene est 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

  1. Capacités d'interface utilisateur modernes
  2. Prise en charge graphique étendue
  3. Facile intégration avec le code Java existant
  4. Compatibilité multiplateforme
  5. 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

  1. Installer le plugin "JavaFX"
  2. Ajouter le SDK JavaFX à la structure du projet
  3. Configurer les dépendances du module

Configuration d'Eclipse

  1. Installer le plugin "e(fx)clipse"
  2. Configurer la bibliothèque d'exécution JavaFX
  3. 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

  1. Séparer l'interface utilisateur et la logique
  2. Utiliser FXML pour les mises en page complexes
  3. Implémenter une gestion d'événements appropriée
  4. Utiliser CSS pour la mise en forme
  5. 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.