【问题标题】:How to make a Timer that waits one second & then continues on with program?如何制作一个等待一秒钟然后继续执行程序的计时器?
【发布时间】:2015-06-19 22:17:19
【问题描述】:

如何创建一个与JFrane/JPanel 面向的程序兼容的计时器,它只等待 1 秒,然后继续执行其余代码?

我不想使用Thread.sleep();,因为它会给我带来麻烦。

【问题讨论】:

  • 您是真的想延迟 GUI 线程(意味着您的 GUI 将因延迟而冻结)还是仅仅一个事件?对于后者(这可能是您想要的),@Puce 的回答似乎可以完成这项工作。

标签: java swing timer jframe jpanel


【解决方案1】:

对于此类任务,您可以使用javax.swing.Timer。它与事件调度线程 (EDT) 集成。

【讨论】:

    【解决方案2】:
    TimeUnit.SECONDS.sleep(1)
    

    更多有用的信息在这里: How to delay in Java?

    【讨论】:

    • 那个链接的问题是关于一个应用程序的。没有图形用户界面。应用。使用 GUI 需要特别考虑(请参阅@Puce 的答案以了解如何操作)。 OP 甚至 提到 在使用 sleep() 时遇到问题 ..
    • 我很确定是否有 GUI 并不重要。大量使用 TimeUnit 延迟其应用程序的 GUI 示例。一次谷歌搜索返回了大量示例。而且我没有意识到 TimeUnit.sleep() 只是 Thread.sleep() 的开销。我的错。
    • @jknam 您的所有三个示例都已使用多线程。这是一个巨大的差异。我认为 Andrew Thompson 谈到了 GUI 线程被暂停(导致 GUI 无响应)的示例。
    猜你喜欢
    • 1970-01-01
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多