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

标签 java gradle javafx resources javafx-8

我知道这似乎是一个常见的主题,但到目前为止,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/

相关文章:

java - 启动后停用闪屏

java - Java Web App 中单个动态和静态文件的缓存设置

java - 我可以在 Java 中对 InputStream 执行连续的标记操作吗

android - Android Studio 2.2重命名apk文件

java - Android Studio 和 Gradle : Add outside java classes to Android main project

java - 在 Spring 中创建自定义 FXML 加载器时出错

java - getRequestCycle().urlFor 无法在面板中工作

maven - Gradle依赖解析总是首先尝试mavenCentral?

java - 制作 TableView 项目的副本

应用程序启动方法/位置中的 JavaFX 异常需要修复,无需修复