情況 1:FXML 文件與調用類在同一個包中(推薦)
假設類 MainApp
的包是 com.example
,且 FXML 文件放在 resources/com/example
下:
項目根目錄
├── src
│ └── sample
│ └── Main.java
├── src/sample/resources
│ └── sample
│ └── my_view.fxml
使用 getClass().getResource() 的正確方式
URL fxmlUrl = getClass().getResource("my_view.fxml");
FXMLLoader loader = new FXMLLoader(fxmlUrl);
情況 2:FXML 文件在與調用類在同一個包中,且資源目錄的子文件夾中
例如,FXML 文件位于 resources/com/example/view
:
項目根目錄
項目根目錄
├── src
│ └── sample
│ └── Main.java
├── src/sample/resources
│ └── sample1
│ └── my_view.fxml
使用 getClass().getResource() 的正確方式
// 使用絕對路徑(以 / 開頭表示從 classpath 根目錄開始)
URL fxmlUrl = getClass().getResource("/sample/resources/sample1/samplexiala1.fxml");
FXMLLoader loader = new FXMLLoader(fxmlUrl);