gpt4 book ai didi

java - 无法在 JavaFX 项目中使用 getResource() 访问资源

转载 作者:行者123 更新时间:2023-12-02 01:57:35 25 4
gpt4 key购买 nike

我知道这似乎是一个常见的主题,但到目前为止,StackOverflow 上没有任何解决方案对我有用。请参阅下面我尝试过的所有内容。

问题: getResource()无论我尝试什么路径,方法都无法检索我的项目的资源。

项目结构:有问题的资源是 mainWindow.fxml我尝试检索它的类是 Main.java .

src/
|-- main/
|-- java/
|-- app/
|-- myproject/
|> FXMLController.java
|> Main.java
|> package-info.java
|> styles.css
|> mainWindow.fxml
|> module-info.java
|-- resources/
|-- test/
|> build.gradle
|> gradlew
|> gradlew.bat
|> settings.gradle

但是,请注意,我还尝试将资源放入 resources/ 中和里面resources/fxml/并尝试了所有路径(见下文)。

我尝试过的路径:以下路径已与上述所有路径一起尝试过,并且均使用 getClass().getResource() getClass().getClassLoader().getResource() .

  • mainWindow.fxml
  • /mainWindow.fxml
  • fxml/mainWindow.fxml
  • /fxml/mainWindow.fxml

如果有帮助,我正在使用 Windows 并使用 IntelliJ IDEA Community Edition。

最佳答案

这是我们在 JavaFX 8 应用程序上使用的一些代码,它会很好地工作
我们用 fx-id 命名所有的锚定 Pane 。如果您正在使用 Maven 创建 JavaFX 应用程序,则此代码将不起作用。 toChildView() 是按钮的操作事件

    private void toChildView() throws IOException{
stage = (Stage)parentTVPane.getScene().getWindow();// pane you are ON
childTVPane = FXMLLoader.load(getClass().getResource("childtableview.fxml"));// pane you are GOING TO
Scene scene = new Scene(childTVPane);// pane you are GOING TO
scene.getStylesheets().add(getClass().getResource("diary.css").toExternalForm());
stage.setScene(scene);
stage.setTitle("Diary Entries by Date Entered and Title");
stage.show();
stage.sizeToScene();
stage.centerOnScreen();
}

关于java - 无法在 JavaFX 项目中使用 getResource() 访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com