Java - 如何创建延迟

时间:2013-09-12 17:54:31

标签: java swing

我想知道如何让Java程序延迟部分代码以防止在程序中发送垃圾邮件按钮/其他内容。所以我只想说我正在创建一个显示用户点击按钮的次数的程序。我希望有一个延迟,用户无法快速点击按钮。我听说java计时器可以帮助我,但我找不到任何教程解释我需要做什么。

public void ButtonActionPerformed(java.awt.event.ActionEvent evt) {
    count+=1;
    labelA.setText(Integer.toString(count));
}

这只是一个示例程序,而不是我实际工作的程序。有人可以帮助我吗?我需要有一个程序创建一个延迟,所以用户不能垃圾邮件按钮。谢谢:)(这是以前修改过的问题)

2 个答案:

答案 0 :(得分:4)

如果您的字段timerjavax.swing.Timer

private Timer timer;

您可以在构造函数或init方法中创建实例:

final ActionListener listener = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        button.setEnabled(true);
    }
};
timer = new Timer(2000, listener);
timer.setRepeats(false);

在这种情况下,再次启用按钮之前的延迟为2000毫秒。

您可以在按钮的点击事件中启动它。

button.setEnabled(false);
timer.start();

答案 1 :(得分:3)

在名为long lastClicked的动作侦听器中保存实例变量,并将其初始化为0。

在您的处理程序中:

int delay = 1000;
if(System.currentTimeMillis() > lastClicked + delay)
{
    //do your click
    lastClicked = System.currentTimeMillis();
}

延迟1000秒为1秒。