別のパッケージから .fxml にアクセスしようとすると問題が発生します。私のlogin.fxmlが顧客パッケージにあるとしましょう。ログインに成功すると、ホームページに移動します。ホームページで、カート パッケージに含まれる myShoppingCart.fxml へのボタン タット リンクを取得しました。ただし、これを行ったときに null ポインター例外エラーが発生しました。
public void goToCart(ActionEvent event) {
String userName = CustomerLoginController.userLoggedIn.getName();
try {
FXMLLoader fxmlLoader = new FXMLLoader();
Pane p = (Pane) fxmlLoader.load(getClass().getResource("cartCustHome.fxml").openStream());
CartCustHomeUI fooController = (CartCustHomeUI) fxmlLoader.getController();
fooController.retrieveUserName(userName);
Stage stage = new Stage();
Scene scene = new Scene(p);
scene.getStylesheets().add(MainFrame.class.getResource("cart.css").toExternalForm());
stage.setScene(scene);
stage.show();
((Node) (event.getSource())).getScene().getWindow().hide();
} catch (IOException e) {
e.printStackTrace();
}
}
カート パッケージをインポートしたにもかかわらず、cartCustHome.fxml を取得できません。なぜそうなのか不思議です。前もって感謝します。