【问题标题】:java: how to delay code in GUIjava:如何在 GUI 中延迟代码
【发布时间】:2016-02-05 21:12:43
【问题描述】:

我正在为一个学校项目编写 Java 程序。它具有交互式多项选择测试的形式。

我希望它以一种操作按钮创建事件的方式执行它(代码的顺序与列出的相同):

1) 从准备好的列表中随机选择一个由多个字符串组成的对象,并将其打印在 GUI 中的适当文本字段上

2) 使用适当的方法会产生延迟,将进一步的代码保持在下面 1 分钟。此时,用户应该能够选中正确的复选框,因此 GUI 必须保持活动状态。

3)当这一分钟结束时,检查的位置将被读取并进一步处理。

问题是我无法创建第 2) 步,这是下面代码的延迟。我已经尝试过函数 sleep() 但是当我使用 sleep() 执行此操作时,整个 GUI 冻结并且用户无法对其执行任何操作。我读过这个功能摇摆计时器是合适的,但我不知道该怎么做。我见过一些例子,但在它们中,定时器以及在一段时间后执行的函数被写在 ActionListener 类中,而不是操作按钮中。我正在使用 Netbeans 8.1

对不起,我对这个问题的解释不好,我是一个 java 编程的初学者,真的希望你的帮助 :) 干杯!

【问题讨论】:

标签: java swing user-interface timer delay


【解决方案1】:

您的问题来自您的代码结构。你把所有东西都写进了一个方法中。

把它分成两种方法。一个设置 UI 状态(“这里我需要延迟......”之前的所有内容)。第二种方法采用以下所有方法。

然后,在第一个方法结束时,创建一个不重复的 Timer 一分钟,添加一个仅调用您的第二个方法的 ActionListener。然后启动计时器。当计时器运行时,它会通过动作监听器调用你的第二个方法。

【讨论】:

  • 好的,我想我有工作计时器,但在我提供的代码图片中,你可以看到我希望所有事情都完成三遍。现在它的行为就好像这个循环不存在,我真的不知道为什么:/循环的花括号从 JButton 方法的开头和结尾开始。
猜你喜欢
  • 2013-03-13
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 2022-10-16
  • 1970-01-01
  • 2016-09-18
相关资源
最近更新 更多