我想知道如何让Java程序延迟部分代码以防止在程序中发送垃圾邮件按钮/其他内容。所以我只想说我正在创建一个显示用户点击按钮的次数的程序。我希望有一个延迟,用户无法快速点击按钮。我听说java计时器可以帮助我,但我找不到任何教程解释我需要做什么。
public void ButtonActionPerformed(java.awt.event.ActionEvent evt) {
count+=1;
labelA.setText(Integer.toString(count));
}
这只是一个示例程序,而不是我实际工作的程序。有人可以帮助我吗?我需要有一个程序创建一个延迟,所以用户不能垃圾邮件按钮。谢谢:)(这是以前修改过的问题)
答案 0 :(得分:4)
如果您的字段timer
为javax.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秒。