java上位机开发(定时器使用)

时间:2022-11-23 14:59:15


在实际开发中,我们发现有一些任务需要周期性的完成,比如说数据库的检查、设备的检查、状态的检查、变量的检查等等。这个时候就会使用到定时器。在java swing中,因为本身已经集成了定时器,所以直接使用即可。

        需要注意的是,定时器的回调函数中,对相关变量的访问和改写有可能与控件中的回调函数有冲突。这个时候,就需要做好数据的互斥保护工作。

1、准备测试代码

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class process{

public static int cnt = 0;

public static void main(String[] args) throws InterruptedException
{
Timer timer = new Timer(1000 ,new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("cnt = " + cnt);
cnt += 1;
}
});
timer.setRepeats(true);
timer.start();
Thread.sleep(5000);
timer.stop();
}
}

2、代码分析

        代码主要来自于​​https://www.delftstack.com/zh/howto/java/swing-timer-in-java/​​这个地址,略作修改,在此表示感谢。代码中定义了一个变量timer,回调函数就是ActionListener中actionPerformed函数。timer设置为可重复式出发、开始、主线程睡眠、结束。

3、编译、执行

        代码没有问题的话,执行后你会看到这样的结果,

C:\Users\feixiaoxing\Desktop\java_jni>javac process.java && java process
cnt = 0
cnt = 1
cnt = 2
cnt = 3