In Ihrer JavaFX-Anwendung möchten Sie FXML-Dateien aus dem Ressourcenordner laden, indem Sie Code wie den folgenden verwenden:
FXMLLoader.load(getClass().getResource("main.fxml"));
Während sich Ihr Ressourcenordner im Build-Pfad befindet, treten Fehler auf. Um dieses Problem zu lösen, erkunden wir die Optionen zum Auffinden von FXML-Dateien.
Denken Sie daran, dass die FXML-Dateispeicherortsuche eine Teilmenge der generischen Ressourcensuche in Java ist. Ressourcendateien (einschließlich FXML-Dateien) werden relativ zu Ihrem Klassenpfad angegeben. Eine umfassende Anleitung finden Sie unter:
Der folgende Codeausschnitt veranschaulicht das Laden einer FXML-Datei:
FXMLLoader loader = new FXMLLoader(); loader.setLocation(getClass().getResource("/main.fxml")); Parent content = loader.load();
Es gibt mehrere Optionen zum Angeben des FXML-Dateispeicherorts innerhalb Ihrer Ressource Ordner:
1. Platzieren Sie alle FXML-Dateien in src/main/resources:
loader.setLocation(getClass().getResource("/main.fxml"));
2. Platzieren Sie FXML-Dateien in src/main/resources/fxml:
loader.setLocation(getClass().getResource("/fxml/main.fxml"));
3. Platzieren Sie FXML-Dateien in den entsprechenden Ressourcenverzeichnissen:
Angenommen, Ihre Klasse, die die FXML lädt, befindet sich in src/main/java/com/mycompany/myapp, können Sie die FXML-Datei ablegen in:
src/main/resources/com/mycompany/myapp/main.fxml
Und laden Sie es mit:
loader.setLocation(getClass().getResource("main.fxml"));
Stellen Sie sicher, dass Ihre IDE oder Ihr Build-Tool FXML-Dateien aus dem Ressourcenverzeichnis in das Build-Ausgabeverzeichnis kopiert. Um dies zu verwalten, lesen Sie die Anleitung zu den Intellij-Einstellungen: https://stackoverflow.com/questions/25232751/how-to-convert-a-normal-java-project-in-intellij-into-a-javafx-project.
In Java Jigsaw-Anwendungen erhalten Sie Ressourcen direkt von der Klasse, nicht von der Klasse Lader.
// Avoid: ComboBoxStyling.class.getClassLoader().getResource("/css/styleclass.css"); // Use: ComboBoxStyling.class.getResource("/css/styleclass.css");
Das obige ist der detaillierte Inhalt vonWie finde ich FXML-Dateien in Maven-Projekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!