我试图在Javafx
应用程序中创建3个文件夹。我有一个Views
文件夹,其中将包含我的视图,并且我想加载保存在Views
内的fxml
文件。我写在代码里start
方法:Java:从不同文件夹获取资源
Parent root = FXMLLoader.load(getClass().getResource("/Views/ProductView.fxml"));
显然GetResources()
找不到我的文件。我究竟做错了什么?
我试图在Javafx
应用程序中创建3个文件夹。我有一个Views
文件夹,其中将包含我的视图,并且我想加载保存在Views
内的fxml
文件。我写在代码里start
方法:Java:从不同文件夹获取资源
Parent root = FXMLLoader.load(getClass().getResource("/Views/ProductView.fxml"));
显然GetResources()
找不到我的文件。我究竟做错了什么?
尝试这样的事情是这样的 Parent root=FXMLLoader.load(getClass().getClassloader().getResource("application/Models/Views/ProductView.fxml")
当我遇到这样的问题时,我通常会使用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());
}
问题是,装载机无法找到FXML文件... 因此,负载方法可以是空的或获取InputStream的说法。 这应该工作:
FXMLLoader loader = new FXMLLoader();
FileInputStream fileInputStream = new FileInputStream(new File("src/main/java/CRUD/bnkseekCRUD.fxml"));
Parent root = loader.load(fileInputStream);
至少它适用于我。 )))
我认为问题在于你没有'/ View',但'/ application/View'你能试试吗?不过你也可以尝试'View /',因为你的Main类在'application'包中 – Clayn