JavaFX 2 Window.hide在特定时间之后

Kai*_*ito 2 java window javafx-2

我希望在30秒(或其他特定时间)后关闭/隐藏窗口.我尝试了一下这段代码:

Calendar cal = Calendar.getInstance();
cal.getTime().getTime();
Run Code Online (Sandbox Code Playgroud)

但我真的无法弄清楚如何让它发挥作用.我正在使用JavaFX 2.如何在隐藏窗口之前指定等待的时间量window.hide()

jew*_*sea 5

使用PauseTransition很简单,因为它可以保留JavaFX Application线程中的所有内容,而且您不必担心潜在的线程问题.

如果您使用的是Java 8:

final Window window = new Stage();
. . .
PauseTransition pause = new PauseTransition(Duration.seconds(30));
pause.setOnFinished(e -> window.hide());
pause.play();
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用的是Java 7,请将lambda替换为:

pause.setOnFinished(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        window.hide();
    }
});
Run Code Online (Sandbox Code Playgroud)