引用資源資料夾中的JavaFX FXML 檔案
建置JavaFX GUI 應用程式時,您經常需要存取儲存在src/main/resources 資料夾中的FXML文件。為此,您可以使用 FXMLLoader.load() 方法,如您在問題中所提到的。
通用資源查找資訊
JavaFX FXML 檔案查找是通用資源查找過程的一部分在爪哇。資源位置作為輸入傳遞給 FXMLLoader。因此,資源查找是應用程式程式碼的一部分,而不是 FXMLLoader 本身。
有關JavaFX 應用程式資源查找的詳細信息,請參閱:
- [確定正確路徑用於FXML、CSS、圖像和其他資源](https://stackoverflow. com/a/33169100/17772320)
- [JavaFX 中資源檔案的放置位置](https://edencoding.com/ where-to-put-resource-files-in-javafx/)
使用範例
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();
登入後複製
位置解析選項
有多種解析方法FXML 檔案位置:
-
將所有這些解析方法檔案放在src/main/resources 目錄中:
- loader.setLocation(getClass().getResource(" /main.fxml"));
-
為FXML 檔案建立專用的src/main/resources/fxml 目錄:
- loader.setLocation (getClass().getResource("/fxml/main.fxml"));
-
將FXML 檔案放置在反映Java 來源層次結構的對應資源目錄中:
- src/main/resources/com/mycompany/myapp :
- loader.setLocation(getClass().getResource("main.fxml"));
FXMLLoader 使用建議
- FXMLLoader 使用建議
-
- 透過new FXMLLoader() 實例化FXMLLoader,而不是靜態方法。
設定 FXMLLoader 上的位置並使用 load( ),而不是從流載入。
使用 getClass().getResource() 衍生類別的基於 URL 的位置。
IDE 和建置設定- 確保您的 IDE 或建置工具將 FXML 檔案從資源目錄複製到建置輸出目錄。有關Intellij 設置,請參閱:
[如何在Intellij 中將普通Java 專案轉換為JavaFX 專案](https://dzone.com/articles/how-to-convert-a-normal -java-project-into-a-javafx-1)
Java Jigsaw 模組化應用程式- 在Java 模組化應用程式中,請謹慎使用類別載入器進行資源查找。相反,直接從類別存取資源:
-
正確:ComboBoxStyling.class.getResource("/css/styleclass.css");不正確:ComboBoxStyling.class.getClassLoader( ).getResource("/css/styleclass.css");
以上是如何引用儲存在 `src/main/resources` 資料夾中的 JavaFX FXML 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!