实际显示窗口之前触发的JavaFX WindowEvent.WINDOW_SHOWN

时间:2015-08-25 21:46:41

标签: javafx

我尝试这样做的真正原因是在UI显示时运行游戏(无限)循环,但这显示了同样的问题。

    primaryStage.setScene(new Scene(root));

    primaryStage.addEventHandler(WindowEvent.WINDOW_SHOWN, event -> {
        System.out.println("Shown");
        try {
            Thread.sleep(4000);
        } catch (Exception e) {
            e.printStackTrace();
        }
    });

    primaryStage.show();

此代码将导致控制台消息,然后等待4秒,然后窗口实际显示。我真的无法在此找到任何内容而且它似乎没有多大意义,因为WINDOW_SHOWN的文档明确指出它在窗口显示后才会触发。

1 个答案:

答案 0 :(得分:0)

不完全是对原始问题的答案,而是对什么解决了搜索带给我的问题的评论。

我需要显示由MainScene show事件挂钩触发的APPLICATION_MODAL自定义对话框。

如果我通过 showAndWait()显示对话框,则父级舞台窗口装饰从未完成正确渲染,直到对话框关闭。  如果我通过 show()显示对话框,父对象正确呈现,但我仍然需要正确的模态事件队列阻塞。