Utiliser JavaFX dans IntelliJ

CS-108

Introduction

JavaFX est une bibliothèque Java de création d'interfaces utilisateur graphiques. JavaFX faisait initialement partie de la bibliothèque standard Java, mais est devenu par la suite un projet séparé. Pour cette raison, il est nécessaire d'installer JavaFX avant de pouvoir l'utiliser dans un projet, et ce document décrit la marche à suivre.

Installation de JavaFX

Pour installer JavaFX, il faut commencer par télécharger l'archive Zip contenant la version correspondant à votre système d'exploitation (Windows, macOS ou Linux). Pour cela, rendez-vous sur la page de téléchargement d'OpenJFX et choisissez, dans les menus déroulants :

  • la version 20,
  • le système d'exploitation que vous utilisez,
  • si vous la connaissez, l'architecture de votre ordinateur,
  • le type SDK.

Une fois l'archive téléchargée, décompressez-la dans un dossier de votre choix. Si vous avez déjà un dossier contenant tous les projets liés à ce cours (séries d'exercices, projet principal, etc.), il est conseillé d'y placer également JavaFX, afin de garder de l'ordre.

La décompression de l'archive devrait créer un dossier nommé javafx-sdk-20 contenant au moins deux sous-dossiers nommés legal et lib. Sur Windows, un sous-dossier bin existe également.

Configuration d'IntelliJ

Une fois l'archive décompressée, il faut encore configurer IntelliJ pour qu'il ait connaissance de cette bibliothèque, puis ajouter la bibliothèque à tous les projets qui l'utilisent.

Définition d'une variable de chemin

Pour simplifier les opérations qui suivent, il est bien de commencer par définir ce qu'IntelliJ nomme une variable de chemin (path variable). Comme son nom l'indique, une telle variable contient un chemin d'accès à un fichier ou un dossier, et une fois définie, elle peut être utilisée à plusieurs endroits dans IntelliJ.

Notre but est de définir une telle variable nommée JFX_PATH et contenant le chemin d'accès au sous-dossier lib obtenu après décompression de l'archive d'OpenJFX. Pour ce faire, ouvrez les réglages (Settings) d'IntelliJ puis dans la partie gauche, déroulez Appearance & Behavior puis sélectionnez Path Variables. Ensuite, cliquez sur le bouton + et, dans la boîte de dialogue intitulée Add Variable qui s'ouvre, entrez :

  • JFX_PATH comme nom de variable (Name),
  • le chemin vers le sous-dossier lib obtenu après décompression de l'archive comme valeur (Value) — le plus simple pour l'obtenir étant de cliquer sur l'icône représentant un dossier puis de naviguer jusqu'au sous-dossier lib.

Ajout de la bibliothèque

Afin qu'il soit possible d'utiliser JavaFX dans des projets depuis IntelliJ, il faut l'ajouter sous la forme d'une bibliothèque globale (global library), de la manière suivante :

  1. dans le menu File, choisissez New Project Setup puis Structure…,
  2. dans la partie de gauche, cliquez sur Global Libraries dans la section nommée Platform Settings,
  3. dans la partie centrale, cliquez sur le bouton + en haut, puis choisissez Java dans le menu New Global Library qui s'ouvre,
  4. naviguez vers le dossier lib créé lors de la décompression de l'archive et sélectionnez tous les fichiers qu'il contient (ceci est très important),
  5. cliquez sur Open (ou équivalent),
  6. changez le nom de la bibliothèque ainsi créée en OpenJFX 20, en modifiant le champ situé à droite de l'étiquette Name:,
  7. cliquez sur le bouton + situé sous l'étiquette Name:,
  8. sélectionnez le fichier src.zip qui se trouve dans le dossier parent du dossier lib,
  9. cliquez sur Open (ou équivalent),
  10. cliquez OK dans la boîte de dialogue qui s'ouvre alors.

Une fois ces opérations effectuées, la fenêtre devrait avoir l'apparence suivante (les rectangles violets masquent la partie des chemins qui dépendent de votre système) :

intellij-openjfx;64.png

Vous pouvez alors fermer la fenêtre en cliquant sur OK.

Utilisation de JavaFX dans un projet

Une fois la bibliothèque ajoutée à IntelliJ, il est possible de l'utiliser dans un projet quelconque de la manière suivante :

  1. dans le menu File, choisissez Project Structure…,
  2. dans la partie de gauche, cliquez sur Modules dans la section nommée Project Settings,
  3. dans la partie de droite, sélectionnez l'onglet Dependencies,
  4. dans la partie de droite toujours, cliquez sur le bouton +, puis choisissez l'entrée Library… du menu qui s'ouvre,
  5. dans la fenêtre qui s'ouvre, choisissez OpenJFX 20, puis cliquez sur Add Selected.

Une fois ces opérations effectuées, la fenêtre devrait avoir l'apparence suivante :

intellij-openjfx-proj;64.png

Vous pouvez alors fermer la fenêtre en cliquant sur OK, et JavaFX devrait être utilisable dans votre projet. Pour le vérifier, vous pouvez y ajouter temporairement le programme suivant :

import javafx.scene.paint.Color;

public final class CheckJavaFx {
  public static void main(String[] args) {
    Color c = Color.RED;
    System.out.println(c.getRed());
  }
}

Si vous arrivez à l'exécuter et qu'il affiche 1.0, cela signifie que JavaFX est correctement installé.

Problèmes

Il est possible que lors de l'exécution de certains programmes JavaFX, l'erreur suivante s'affiche au démarrage :

Erreur : des composants d'exécution JavaFX obligatoires pour exécuter cette application sont manquants.

Pour le résoudre, il faut encore effectuer la manipulation suivante :

  1. dans le menu Run, choisissez Edit Configurations…,
  2. cliquez sur Modify options puis choisissez Add VM options pour faire apparaître le champ VM options,
  3. dans le champ intitulé VM options, ajoutez la ligne suivante — la notation $JFX_PATH$ permettant d'insérer le contenu de la variable JFX_PATH créée précédemment :
--module-path $JFX_PATH$ --add-modules javafx.controls