使用多线程,时时更新Label显示当前时间。
例子代码包括两部分,run方法使用eclipse提供的默认方法实现,SWTlabel刷新。
run2方法使用timetask线程(java多线程方式)实现。
不管什么方式,都回避不了,eclipse多线程对java多线程的限制(在java线程中不可以直接操作SWT的control)。
但是个人认为:倾向使用java线程套eclipse线程的方式,因为多线程的负担由eclipse平台转移至了java虚拟机。对于非常复杂的数据计算或许可以提高效率。减少eclipse的响应时间。
(以上观点,仅仅是使用中的猜测,没有任何证据。希望我可以发现证据支持这一猜测)
public class Runner {
private Label ll;
private boolean start = false;
private Timer timer;
public Runner(Label ll) {
this.ll = ll;
}
public void start() {
start = true;
// run();
run2();
}
private void run() {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
if (!start)
return;
ll.setText(new Date().toString());
Display.getDefault().timerExec(2000, this);
}
});
}
private void run2() {
timer = new Timer(true);
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
if (!start)
return;
Display.getDefault().asyncExec(new Runnable() {
public void run() {
ll.setText(new Date().toString());
}
});
}
}, 1000, 1000);
}
public void stop() {
start = false;
}
}
分享到:
相关推荐
4. **多线程**:在SWT应用程序中,为了防止主线程(UI线程)被长时间运行的任务阻塞,后台处理通常在独立的线程中进行。这可以通过Java的Thread类或者Runnable接口实现。在本例中,接收和解析ModBUS数据的线程应独立...
3. **消息循环**:SWT使用了类似Windows的消息循环机制,而不是Swing中的事件分发线程。通过不断地读取消息并分发处理,维持窗口的响应状态。 ### 结论 SWT作为一款强大的GUI组件库,对于那些希望在Java应用程序中...
首先,我们需要创建一个`Display`对象,它是SWT中用于管理GUI线程和绘制的上下文。然后创建一个`Shell`对象,它是SWT窗口的基本构建块。`Shell`的实例化通常伴随着`Display`的实例,这样它们就能一起工作。 接下来...
多线程是Java的一大特色,可以让你的程序同时执行多个任务。通过实例,你可以了解Thread类的使用,线程同步方法(如synchronized关键字、wait()和notify()),以及如何实现Runnable接口来创建线程。 6. **网络编程...
在实际开发中,`WebToImage.java`可能还会包含错误处理、配置选项(如分辨率、是否包含滚动条等)以及多线程支持等功能,以满足不同场景的需求。 总的来说,通过使用DJNativeSwing库,Java开发者可以轻松地在Swing...
javathread.zip 10.Java多线程编程(线程池、生产者消费者、存取款实例) javautil.zip 11.Java常用实体类 javaxml.zip 14.XML属性文件 第4部分(6个程序包) javagui.zip 15.Java GUI库对比实例 javaawt.zip ...
强大的调试器支持多线程和远程调试,使得问题定位更为便捷。 6. **持续集成**:支持CVS和Subversion等版本控制系统,便于团队协作。同时,它也集成了IBM Rational Team Concert,提供项目管理、任务分配、代码审查...
12.1.5 为什么需要多线程309 12.1.6 线程分类309 12.2 线程的生命周期309 12.2.1 线程的状态及转换310 12.2.2 线程睡眠311 12.2.3 线程让步313 12.2.4 线程的加入313 12.3 线程的调度和优先级314 12.4 线程的同步315...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四” 产生张三的密钥对(keyPairZhang) 张三生成公钥(publicKeyZhang...
Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...
Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。 设定字符串为“张三,你好,我是李四”...