0

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

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

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

4

2 回答 2

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();
于 2013-09-12T18:07:47.117 回答
3

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

在您的处理程序中:

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

1000 的延迟将是 1 秒。

于 2013-09-12T17:57:35.910 回答