我目前正在使用两个 Controller 类。

在Controller1中,它创建一个新的阶段,该阶段在主要阶段的顶部打开。

Stage stage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("Controller2.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();

现在,一旦该阶段打开,我希望它在关闭之前保持打开状态约5秒钟。

在Controller2中,我尝试实现类似
long mTime = System.currentTimeMillis();
long end = mTime + 5000; // 5 seconds

while (System.currentTimeMillis() > end)
{
      //close this stage
}

但是我不知道在while循环中放入什么来关闭它。我已经尝试了各种方法,但没有任何效果。

最佳答案

使用 PauseTransition :

PauseTransition delay = new PauseTransition(Duration.seconds(5));
delay.setOnFinished( event -> stage.close() );
delay.play();

关于java - 一定时间后如何关闭舞台JavaFX,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27334455/

10-14 10:46