java - 如何在一定时间后关闭阶段 JavaFX

标签 java while-loop javafx stage

我目前正在使用两个 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/

相关文章:

java - 如何为 ControlsFX CustomTextField 自动完成下拉列表设置 OnClick 或 OnSelection?

java - 日期选择器仅用红色标记某些日期

java - 在 Eclipse 中导入 JAI 的问题

java - 带有 try-catch-finally 的返回类型

python - 如何在 while 循环中生成不重复的随机数? ( python 3)

c - 我的 strstr 函数有效,但一个旨在测试它的程序说它不起作用

javafx - 在 netbeans 中执行时,场景构建器中导入的图像不会显示

java - Dagger :注入(inject)一个类的不同实例

java.lang.IllegalArgumentException

c - 如果不满足条件则停止 while 循环