java:如何在GUI中延迟代码

时间:2016-02-05 21:12:44

标签: java swing user-interface timer delay

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

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

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

2)使用适当的方法会产生延迟,将下面的代码保持在1分钟以下。在这段时间内,用户应该能够检查正确的复选框,以便GUI必须保持活动状态。

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

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

对不起我对这个问题的错误解释,我是java编程的初学者,真的依靠你的帮助:) 干杯!

enter image description here

1 个答案:

答案 0 :(得分:3)

您的问题来自您构建代码的方式。你把所有东西都写成了一个方法。

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

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