加载fxml后的JavaFX onShowing Stage

时间:2018-04-27 20:09:37

标签: javafx stage

我想要做的是一个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,但这也没有用

所以为了确保我没有弄错我的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();

        }   

我真的很同意你的帮助所以如果有人能给我一个线索我做错了什么和/或我如何解决它会很好

0 个答案:

没有答案