向用户界面程序添加超时



我正在做一个涉及用户界面的Java项目,使用Button类和一些动作侦听器。我有几个按钮(每个按钮都有一个动作侦听器),我想为整个程序添加超时。这意味着,如果在一定时间内没有单击按钮,则应执行特定操作。

我尝试将其添加到基本的while循环+ isDisposed()函数中。据我所知,此循环会多次检查是否单击了按钮。出于某种原因,我无法得到我想要的结果。有没有办法用我提到的类做到这一点?我在 Button 类中也找不到任何合适的函数。

使用 Swing Timer (javax.swing.Timer)。

使用 new Timer(CERTAIN_AMOUNT_OF_TIME, e -> timeoutAction()) 实例化它(如果您有函数 timeoutAction),禁用对setRepeats(false)重复并start()它。

当用户单击某个按钮时,调用该按钮上的restart()

此外,您还提到了 Button 类,这是一个 AWT 类。我建议改用 Swing 的 JButton 类。

您很可能正在使用 swing,但由于没有指定,我将给您一个一般性的答案,并提供指向 swing 示例的链接。

首先,由于所有按钮单击的行为方式都非常相似,因此您需要自定义ActionListener(示例)。自定义操作侦听器应执行操作,但将时间戳或某种日期值设置为当前时刻。同时,您应该有一个检测信号事件,该事件定期(频繁)运行并将当前时刻与上次单击按钮设置的时间戳进行比较。你可以在这里看到一个周期性任务的例子:如何在 Java 中调度周期性任务?

相关内容

  • 没有找到相关文章