что я пытаюсь сделать, это окно javaFX, которое обрабатывает мой код , в то время как мое окно отображается, поэтому я работал над
public void setStage()(Stage stage){
this.stage = stage;
stage.setonShowing(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
work(); //What i want to do while my window is visible
}
});
stage.show();
}
setStage () получает свою сцену из класса, откуда я загружаю свой fxml из ....
Каждый раз, когда мое окно всплывает, сон до загружается fxml, но после окно показывалось, поэтому у меня только белое окно, на котором ничего нет
Если честно, я не уверен, в чем настоящая проблема
это то, что я сплю перед загрузкой fxml или это мой setonShowing (), который работает не так, как должно быть?
я также попытался использовать setonShown()
вместо setonShowing()
, но ничего не изменилось
я также попытался переопределить setonShowing
в моем классе Parent, но это также не сработало
, чтобы убедиться, что я ничего не сделал с моим fxml, вот код, который я использую для создания окна:
Parent root;
Stage stage = (Stage) StartSingleplayer_B.getScene().getWindow();
stage.close(); // closing my old window
try {
fxmlLoader = new FXMLLoader(getClass().getResource("Spielfeld.fxml"));
root = (Parent) fxmlLoader.load();
GameController controller = fxmlLoader.getController();
Stage stage2 = new Stage();
controller.setStage(stage2);
stage2.setOnShowing(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent event) {
work();
}
});
stage2.setScene(new Scene(root));
stage2.show();
} catch(Exception e) {
e.printStackTrace();
}
Я действительно ценю вашу помощь, поэтому было бы неплохо, если бы кто-то мог дать мне подсказку, что я сделал неправильно и / или как я мог это исправить