我正在尝试使用Swing Timer停止程序。
Timer timer = new Timer(10000,
new ActionListener(public void actionPerformed(ActionEvent e) {}));
无效
public class Card extends JButton implements ActionListener {
int numberClick = 0;
public card() {
addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
numberClick++;
if(numberClick == 2) {
Timer timer = new Timer(10000, );
timer.start();
numberClick = 0;
}
}
}
答案 0 :(得分:2)
您似乎对Timer的工作方式缺乏基本的了解。请阅读How to Use Swing Timers。这个概念相当简单。
Timer
构造函数中的第一个参数是delay
。好像你有那个部分了。第二个参数是ActionListener
,它监听"计时器事件" (实际上是ActionEvents)。每个延迟时间都会触发一个事件。回调(actionPerformed
)包含在该延迟(tick)之后应该执行的操作。所以无论你想要在那一秒之后发生什么,都要把它放在计时器的actionPerformed
ActionListener
。
此外,如果您只想发生一次,则应致电timer.setRepeats(false);
。另请注意,您使用的是10000
,以毫秒为单位,因此它是10秒,而不是1.您应该将其更改为1000
示例流程
JButton button = new JButton("Press Me");
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
Timer timer = new Timer(1000, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Print after one second");
}
});
timer.setRepeats(false);
timer.start();
}
});
按按钮→等待一秒→打印声明