Maison > Java > javaDidacticiel > Comment référencer les fichiers JavaFX FXML stockés dans le dossier « src/main/resources » ?

Comment référencer les fichiers JavaFX FXML stockés dans le dossier « src/main/resources » ?

Mary-Kate Olsen
Libérer: 2024-11-21 00:41:12
original
843 Les gens l'ont consulté

How do I reference JavaFX FXML files stored in the `src/main/resources` folder?

Référencement des fichiers JavaFX FXML dans les dossiers de ressources

Lors de la construction d'applications GUI JavaFX, vous devez souvent accéder aux fichiers FXML stockés dans le dossier src/main/resources. Pour ce faire, vous pouvez utiliser la méthode FXMLLoader.load(), comme vous l'avez mentionné dans votre question.

Informations de recherche de ressources génériques

La recherche de fichiers JavaFX FXML fait partie du processus de recherche de ressources génériques. en Java. L'emplacement de la ressource est transmis au FXMLLoader en entrée. Par conséquent, la recherche de ressources fait partie du code de votre application, et non du FXMLLoader lui-même.

Pour plus de détails sur la recherche de ressources pour les applications JavaFX, reportez-vous à :

  • [Détermination du chemin correct pour FXML, CSS, images et autres ressources](https://stackoverflow.com/a/33169100/17772320)
  • [Où placer les fichiers de ressources dans JavaFX](https://edencoding.com/ Where-to-put-resource-files-in-javafx/)

Exemple d'utilisation

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();
Copier après la connexion

Options de résolution d'emplacement

Il existe plusieurs façons de résoudre l'emplacement du fichier FXML :

  1. Placez tous les fichiers FXML dans le répertoire src/main/resources :

    • loader.setLocation(getClass().getResource(" /main.fxml"));
  2. Créez un répertoire src/main/resources/fxml dédié pour les fichiers FXML :

    • loader.setLocation (getClass().getResource("/fxml/main.fxml"));
  3. Placez les fichiers FXML dans un répertoire de ressources correspondant qui reflète la hiérarchie source Java :

    • src/main/resources/com/mycompany/myapp:
    • loader.setLocation(getClass().getResource("main.fxml"));

Recommandations d'utilisation de FXMLLoader

  • Instancier un FXMLLoader via le nouveau FXMLLoader(), pas les méthodes statiques.
  • Définissez l'emplacement sur le FXMLLoader et utilisez load( ) au lieu de charger à partir d'un flux.
  • Utilisez getClass().getResource() pour dériver un emplacement basé sur une URL pour les classes.

IDE et paramètres de construction

Assurez-vous que votre IDE ou votre outil de build copie les fichiers FXML du répertoire de ressources vers le répertoire de sortie de build. Pour les paramètres Intellij, voir :

  • [Comment convertir un projet Java normal en un projet JavaFX dans Intellij](https://dzone.com/articles/how-to-convert-a-normal -java-project-into-a-javafx-1)

Applications modulaires Java Jigsaw

Dans les applications modulaires Java, soyez prudent lors de la recherche de ressources à l'aide de chargeurs de classes. Au lieu de cela, accédez aux ressources directement depuis la classe :

  • Correct : ComboBoxStyling.class.getResource("/css/styleclass.css");
  • Incorrect : ComboBoxStyling.class.getClassLoader( ).getResource("/css/styleclass.css");

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal