Java FX project

Bonjour,

je viens de lire le cours de apprenez a apprendre le language java et plus precisament javafx j'ai suis toutes les instructions

du site openclassroomhttps://openclassrooms.com/fr/courses/26832-apprenez-a-programmer-en-java/5013971-installez-des-outils

package fr.testfx.personnes;

import java.io.IOException;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class MainClass extends Application {

//Nous créons des variable de classes afin de pouvoir y accéder partout
//Ceci afin de pouvoir y positionner les éléments que nous avons fait
//Il y a un BorderPane car le conteneur principal de notre IHM
//est un BorderPane, nous reparlerons de l'objet Stage
private Stage stagePrincipal;
private BorderPane conteneurPrincipal;

@Override
public void start(Stage primaryStage) {
stagePrincipal = primaryStage;
//Ca ne vous rappelle pas une JFrame ?
stagePrincipal.setTitle("Application de gestion de personnes");

//Nous allons utiliser nos fichier FXML dans ces deux méthodes
initialisationConteneurPrincipal();
initialisationContenu();
}

private void initialisationConteneurPrincipal(){
//On créé un chargeur de FXML
FXMLLoader loader = new FXMLLoader();
//On lui spécifie le chemin relatif à notre classe
//du fichier FXML a charger : dans le sous-dossier view
loader.setLocation(MainClass.class.getResource("view/ConteneurPrincipal.fxml"));
try {
//Le chargement nous donne notre conteneur
conteneurPrincipal = (BorderPane) loader.load();
//On définit une scène principale avec notre conteneur
Scene scene = new Scene(conteneurPrincipal);
//Que nous affectons à notre Stage
stagePrincipal.setScene(scene);
//Pour l'afficher
stagePrincipal.show();
} catch (IOException e) {
e.printStackTrace();
}
}

private void initialisationContenu(){
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainClass.class.getResource("view/PersonView.fxml"));
try {
//Nous récupérons notre conteneur qui contiendra les données
//Pour rappel, c'est un AnchorPane...
AnchorPane conteneurPersonne = (AnchorPane) loader.load();
//Qui nous ajoutons à notre conteneur principal
//Au centre, puisque'il s'agit d'un BorderPane
conteneurPrincipal.setCenter(conteneurPersonne);
} catch (IOException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
launch(args);
}


mais au moment du compilation j'ai obtenu ce message Error: Could not find or load main class javafx.controls,

Caused by: java.lang.ClassNotFoundException: javafx.controls,

et voici la hierarechie des fichies et merci d'avance


Configuration: Windows / Chrome 98.0.4758.102

2 réponses

  1. oui j'ai deja essaye et j'ai deja ajouter les laibraries et lke module path la varsion que j'utilise c'est JDK17,2
    1. Modérateur
      Bonjour,

      Quelle version de Java as tu installé ? Avec quelle version de JavaFX ?

      Est-ce que tu as une configuration de modules dans ton projet ? As tu pensé à ajouter le module javafx.controls ?

      Au cas où le problème vienne de la configuration Eclipse, essaye déjà en ligne de commandes.

      Voir la documentation :
      https://openjfx.io/openjfx-docs/#install-javafx
      set PATH_TO_FX="path\to\javafx-sdk-17.0.1\lib"
      javac --module-path %PATH_TO_FX% --add-modules javafx.controls HelloFX.java
      java --module-path %PATH_TO_FX% --add-modules javafx.controls HelloFX