2016-11-09 81 views
0

我试图在Javafx应用程序中创建3个文件夹。我有一个Views文件夹,其中将包含我的视图,并且我想加载保存在Views内的fxml文件。我写在代码里start方法:Java:从不同文件夹获取资源

Parent root = FXMLLoader.load(getClass().getResource("/Views/ProductView.fxml")); 

我的文件夹结构如下图所示: enter image description here

显然GetResources()找不到我的文件。我究竟做错了什么?

+1

我认为问题在于你没有'/ View',但'/ application/View'你能试试吗?不过你也可以尝试'View /',因为你的Main类在'application'包中 – Clayn

回答

0

尝试这样的事情是这样的 Parent root=FXMLLoader.load(getClass().getClassloader().getResource("application/Models/Views/ProductView.fxml")

0

当我遇到这样的问题时,我通常会使用File.exists()开始我的代码检查,以查看我的文件路径是否正确。我玩文件路径直到它打印文件路径。

String filePathString = "application/View/ProductView.fxml"; 

File f = new File(filePathString); 
if(f.exists()) { 
    System.out.println("File exists"); 
    System.out.println(f.getAbsoluteFile()); 
} 
0

问题是,装载机无法找到FXML文件... 因此,负载方法可以是空的或获取InputStream的说法。 这应该工作:

FXMLLoader loader = new FXMLLoader(); 
FileInputStream fileInputStream = new FileInputStream(new File("src/main/java/CRUD/bnkseekCRUD.fxml")); 
    Parent root = loader.load(fileInputStream); 

至少它适用于我。 )))

相关问题