在問我的問題之前需要注意的一些事項。我已經看過一些關於如何將數據從一個控制器傳遞到另一個控制器的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(...)'使它更清晰*爲什麼這個工作。 –