我想在30秒後關閉/隱藏窗口(或其他 特定時間)。我試了一下這個代碼:JavaFX 2 Window.hide特定時間後
Calendar cal = Calendar.getInstance();
cal.getTime().getTime();
但我真的不知道如何讓它工作。我正在使用JavaFX 2.如何在隱藏窗口之前指定需要等待的時間量爲window.hide()
?
我想在30秒後關閉/隱藏窗口(或其他 特定時間)。我試了一下這個代碼:JavaFX 2 Window.hide特定時間後
Calendar cal = Calendar.getInstance();
cal.getTime().getTime();
但我真的不知道如何讓它工作。我正在使用JavaFX 2.如何在隱藏窗口之前指定需要等待的時間量爲window.hide()
?
使用PauseTransition很簡單,因爲它使JavaFX應用程序線程,你不上的一切不需要擔心潛在的線程問題。
如果你是在Java的8:
final Window window = new Stage();
. . .
PauseTransition pause = new PauseTransition(Duration.seconds(30));
pause.setOnFinished(e -> window.hide());
pause.play();
或者,如果你是在Java 7中,請用拉姆達:
pause.setOnFinished(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
window.hide();
}
});
你可以使用ScheduledExecutorService的安排的情況下,雖然關於Java 8+對方的回答應該是首選:
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(
new Runnable() {
@Override public void run() {
Platform.runLater(new Runnable() {
@OVerride public void run() { stage.hide(); }
})
}
}, 30, TimeUnit.SECONDS);
請使用'Platform.runLater()'來執行它在GUI線程上。 –
@ Eng.Fouad Yup謝謝。 – assylias
謝謝,這工作正常:) – Kaito