ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
logger.finest("Reading SMTP Info.");
}
};
Timer timer = new Timer(100 ,taskPerformer);
timer.setRepeats(false);
timer.start();
Run Code Online (Sandbox Code Playgroud)
根据文档,这个计时器应该发射一次,但它永远不会发射.我需要它一次开火.
kgi*_*kis 18
这个简单的程序适合我:
import java.awt.event.*;
import javax.swing.*;
public class Test {
public static void main(String [] args) throws Exception{
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
System.out.println("Reading SMTP Info.");
}
};
Timer timer = new Timer(100 ,taskPerformer);
timer.setRepeats(false);
timer.start();
Thread.sleep(5000);
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
该程序将正常工作...
setRepeats(boolean flag)用于设置调用function(actionPerformed)重复或仅一次的函数,如果
timer.setRepeats(false) == timer 只调用一次 actionperformed 方法timer.setRepeats(true) == timer 根据指定时间重复调用 actionPerformed 方法摆动定时器工作
创建摇摆计时器的步骤:
actionPerformed()任务的功能timer.start()用于启动定时器的构造,使用指定的时间之间的任务timer.stop()为停止任务例子:
ActionListener al=new ActionListener() {
public void actionPerformed(ActionEvent ae) {
//do your task
if(work done)
timer.stop();//stop the task after do the work
}
};
Timer timer=new Timer(1000,al);//create the timer which calls the actionperformed method for every 1000 millisecond(1 second=1000 millisecond)
timer.start();//start the task
Run Code Online (Sandbox Code Playgroud)