JavaFX getResource没有加载FXML

时间:2016-10-24 18:51:16

标签: java javafx

我尝试使用以下代码将FXML文件加载到JavaFX控制器中:

loader.setLocation(BaseController.class.getResource("/baseLayout.fxml"));
baseLayout = loader.load();

但是我得到了这个例外:

java.lang.IllegalStateException: Location is not set.

问题是getResource没有正确加载FXML,因此setLocation接收null作为参数,我得到运行loader.load()

的异常

我在那里的一些答案中看到的是,问题可能在于getResource中的错误路径。但是,据我所知," /baseLayout.fxml"应该指向资源文件夹中的相应fxml文件。

这是我的项目文件树:

  
      
  • 项目/      
        
    • 的src /      
          
      • 主/      
            
        • 的java /
        •   
        • 资源/      
              
          • baseLayout.fxml
          •   
        •   
      •   
    •   
  •   

它不应该起作用吗?我实际上工作得很好,但突然之间没有。我不知道还能做什么。

1 个答案:

答案 0 :(得分:0)

您可以尝试像这样加载fxml

loader.setLocation(BaseController.class.getResource("/resources/baseLayout.fxml"));

loader.setLocation(BaseController.class.getResource("../resources/baseLayout.fxml"));

但在此之前,正如@James_D所述请检查天气,生成的jar包含资源文件夹i:天气是否存在于构建中。