所以我想從我的控制器處理WINDOW_SHOWN
事件與這樣的代碼:JavaFX的2窗口事件控制器
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
initializeDatePickers();
System.out.println("payer number in initialize: " + payerNumber);
URL location = getClass().getResource("/createUser.fxml");
FXMLLoader loader = new FXMLLoader();
try {
Parent root = (Parent) loader.load(location.openStream());
root.getScene().getWindow().setOnShown(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
System.out.println("ONSHOWN");
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
但是,所有我得到的是無休止的循環和程序崩潰。 下面的代碼沒有任何工作,它返回NullPointerException異常:
@FXML private AnchorPane createUserDialog; //my root pane
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
createUserDialog.getScene().getWindow().addEventHandler(WindowEvent.WINDOW_SHOWN,
new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent window) {
System.out.println("ONSHOWN");
}
});
}
實施WindowEvent接口並沒有在所有的工作,不知道爲什麼。 那麼,我怎麼處理這個事件呢?爲什麼我有NullPointerException?在文檔中說initialize()
只有在根窗格完全處理後纔會調用。
是的,我需要它。 – user3262222
正式更新... –