当前位置: 首页 > 面试题库 >

一定时间后如何关闭舞台JavaFX

颛孙俊
2023-03-14
问题内容

我目前正在使用两个控制器类。

在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();


 类似资料:
  • 在一个类中,在一个函数中,我创建了一个Tkinter画布。这个函数正在被另一个类调用,我希望Tkinter窗口弹出30秒,然后自动关闭。我有电话 但我犯了个错误 elf.tk.call('destroy',self.w)\u tkinter.TclError:无法调用“destroy”命令:应用程序已被销毁 那我怎么能让它自己关上呢?

  • 我正在开发一个GUI,它允许用户决定是继续执行脚本还是终止脚本,但如果用户在15分钟内没有响应,我希望关闭窗口并自动执行脚本的其余部分。我用过根。函数中的destroy(),但它仅在用户响应时执行。 我尝试过在试用的基础上使用倒计时功能,但它不起作用,因为没有用户响应控制就不会进入倒计时功能。我有什么办法能完成这项任务吗?

  • 我有带oauth2安全mySql数据库连接和一些控制器的Spring Boot应用程序。我已经在AWS服务器上部署了它,它工作得很好,但它在一段时间后关闭了,它没有得到很多API调用,所以没有理由DDOS失败或outOfMemmory错误,我可以在日志中看到以下消息 2018-10-28 10:58:55.979信息1253---[线程-3]ConfigServletWebServerApplic

  • 问题内容: 我需要创建一个向用户显示主要阶段的应用程序,并且如果用户关闭该阶段,而不是完成该应用程序,则应该隐藏该阶段以备后用。在摇摆中,我们可以仅将setVisible(false)调用到JFrame或JDialog,但是如何在JavaFX上执行呢? 问题答案: JavaFX工具包启动后,默认情况下,当最后一个可见窗口关闭时,它将关闭。 为防止这种情况,您可以致电 尽管可以从任何线程调用它,但是

  • 假设我在JavaFX中有一个舞台。我没有按X关闭按钮来关闭窗口,而是隐藏窗口,或者说切换到计算机上的其他应用程序。无论何时我隐藏窗口或切换到PC的任何其他窗口,我都希望舞台自动关闭。 我尝试了这三种方法,但所有这些方法仅在我自己关闭窗口时激活,而不是在我隐藏窗口时激活。 任何帮助将不胜感激。谢谢。

  • 问题内容: 我正在JavaFx中创建一个应用程序,如果要打开任何子阶段,则应在其中进行操作,然后应在父阶段的中心打开它。我正在尝试使用它来执行此操作,但是它将子级分配到屏幕的中心,而不是父级的中心。如何将子阶段分配给父阶段的中心? 问题答案: 您可以使用父级的X / Y / width / height属性来执行此操作。除了使用,您可以执行以下操作: