在问我的问题之前需要注意的一些事项。我已经看过一些关于如何将数据从一个控制器传递到另一个控制器的YouTube视频和博客,我假设您必须使用.openStream()才能做到这一点,否则会破坏我的应用程序。所以我正在尝试将一个字符串传递给我的另一个控制器,如下所示,但在此之前,除非不使用openStream(),否则使用相同的确切代码不返回任何错误。JavaFX FXMLloader资源未找到
但是,使用.openStream()后,我收到以下错误
Caused by: java.lang.IllegalArgumentException: Invalid URL: Invalid URL or resource not found
方法导致错误
private void setupFXMLloader() throws IOException{
//Set up FXMLloaders
FXMLLoader loader = new FXMLLoader();
Parent root = loader.load(getClass().getResource("/smartcal/home/Home.fxml").openStream());
//Get an instance of the home controller
HomeController homeController = loader.getController();
homeController.initUserSettingsButton(email_field.getText());
//This method would take a user email and
//parse it to match database to be loaded onto the calendar
// homeController.updateCalendarHome();
//Create a new scene and add css file to it
Scene scene = new Scene(root);
// scene.getStylesheets().add(getClass().getResource("customfile.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
}
太谢谢你了!奇迹般有效! –
您可以将URL传递给FXMLLoader的构造函数 – Clayn
@Clayn是,true;我只是想明确调用'setLocation(...)'使它更清晰*为什么这个工作。 –