`

解决SWT多线程的问题

    博客分类:
  • SWT
 
阅读更多
package com.yc.ui;

import java.util.Date;

public class Da {

	protected Shell shell;

	/**
	 * Launch the application.
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			Da window = new Da();
			window.open();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Open the window.
	 */
	public void open() {
		Display display = Display.getDefault();
		createContents();
		shell.open();
		shell.layout();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}
	}

	/**
	 * Create contents of the window.
	 */
	protected void createContents() {
		shell = new Shell();
		shell.setSize(450, 300);
		shell.setText("SWT Application");
		
		Button button = new Button(shell, SWT.NONE);
		button.addDisposeListener(new DisposeListener() {
			//关闭窗口
			public void widgetDisposed(DisposeEvent arg0) {
				System.exit(0);
			}
		});
		
		button.setBounds(106, 104, 80, 27);
		button.setText("New Button");
		
		final Label label = new Label(shell, SWT.NONE);
		label.setBounds(106, 169, 236, 65);
		label.setText("New Label");
		button.addSelectionListener(new SelectionAdapter() {
			@Override
			public void widgetSelected(SelectionEvent e) {
				
				Show s=new Show(label);
				
				Thread t=new Thread(s);
				t.start();
				
			}
		});
	}
}


	class Show implements Runnable{
		private Label label;
		public Show(Label label){
			this.label=label;
		}
		
	
		
		@Override
		public void run() {
			Display display=label.getDisplay().getDefault();
			while(true){
				//调用label的syncExec方法
			display.syncExec(new Runnable(){

				@Override
				public void run() {
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					label.setText(new Date()+"");
					
				}
				
			});
		}
			
			
	}
		
	
		
	}
分享到:
评论

相关推荐

    局域网聊天 SWT Java 多线程问题已经解决

    本主题将深入探讨如何利用SWT(Standard Widget Toolkit)和Java来构建一个局域网内的聊天应用,并解决其中涉及的多线程问题。SWT是Eclipse基金会提供的一个开源GUI库,它为Java开发者提供了与操作系统更紧密集成的...

    swt线程冲突与解决

    接下来我们来看一个具体的示例,展示如何在实际开发中应用上述两种策略来解决SWT线程冲突问题。 ```java public class SWTMainWin { private Shell shell; private int returnCode = SWT.CANCEL; public ...

    swt源码以及jar

    首先,源码部分允许开发者深入理解SWT的工作原理,探究其内部结构,这对于进行定制化开发或者解决特定问题时非常有用。通过查看源代码,我们可以学习到如何利用SWT创建窗口、控件、布局管理等,以及如何处理事件和...

    swt64位和32位jar包4.3版本可用

    它是Eclipse项目的一部分,提供了与操作系统更紧密集成的功能,比如原生对话框、控件和多线程支持。标题提到的是SWT的4.3版本,提供了适用于64位和32位操作系统的jar包。 在Java中,JVM(Java虚拟机)根据安装的...

    SWT深入内幕之消息机制探秘.pdf

    不同于MFC使用窗口查找表的技术可能会导致线程间消息传递的问题,SWT的设计更加健壮,能够更好地处理多线程环境下的消息。SWT利用了JNI的特性,确保即使在多线程环境中也能正确地处理消息。 #### 四、与其他框架的...

    用SWT做界面的定时关机软件

    这个项目是一个典型的Java GUI应用程序示例,结合了SWT库的使用,多线程编程,以及与操作系统的交互,为用户提供了一种方便的定时关机解决方案。通过研究其源代码,开发者可以学习到如何构建类似的应用,并深入了解...

    SWT_全接触 SWT_全接触 SWT_全接触

    4. **社区支持**:相对于AWT和Swing,SWT的社区支持稍弱,这意味着在遇到问题时可能难以找到解决方案。 ### SWT入门 #### HelloWorld示例解析 以下是对SWT HelloWorld示例的详细解析: ```java import org....

    swt入门学习资料

    解决这个问题的方法是找到对应操作系统的 DLL 文件并将其放到系统路径中,或者将 DLL 文件与你的应用程序一起打包。在Eclipse中,你可以通过以下步骤配置: 1. 右键点击项目 -> Build Path -> Configure Build Path...

    使用Eclipse进行SWT编程.pdf

    SWT解决了AWT和Swing框架中的问题,使用JNI访问本地窗口组件(native widgets),并且可以模拟不能获取的窗口组件。SWT应用程序的基础材料包括Display、Shell和Widgets。 1. 为什么要使用SWT? SWT是IBM开发的一套...

    Eclipse之SWT编程

    在多线程环境中,每个线程可以拥有自己的`Display`实例,而`Display.getCurrent()`方法可帮助获取当前活跃的`Display`实例。 - `Shell`:代表操作系统窗口,分为顶层`Shell`和对话`Shell`两种。前者作为`Display`的...

    使用Eclipse进行SWT编程

    通过本文的介绍,我们可以了解到SWT作为一种高效的跨平台GUI开发框架,不仅解决了早期Java GUI框架存在的问题,而且为开发者提供了强大的工具和支持,帮助他们在多种平台上构建高质量的应用程序。

    swt

    `SWT线程.pdf`文件可能是详细讲解SWT中线程管理的教程,可以帮助读者深入理解如何在SWT应用中正确处理多线程。 总的来说,SWT是一个强大且灵活的GUI库,对于希望开发高性能、原生感的Java桌面应用的开发者来说,是...

    基于java的多线程与线程安全实践-基于Http协议的断点续传设计与实现毕业设计

    综上所述,本毕业设计涵盖了Java多线程编程的核心原理和实践,线程安全策略,HTTP协议的高级应用,以及解决实际问题的断点续传技术。通过这个项目,学生将能深入理解这些技术,并能够设计出具有实用价值的软件系统。

    用SWT写的文件同步程序

    7. 性能优化:大文件或大量文件的同步需要考虑性能优化,比如使用多线程处理以提高效率。 8. 定时任务:程序可能包含一个定时器功能,允许用户设定定期自动同步,以保持数据的实时一致性。 9. 日志记录:为了追踪...

    Java程序设计之swt教程.rar

    9. **示例代码**:教程中应包含丰富的代码示例,帮助读者更好地理解和应用SWT技术,解决实际问题。 10. **下载说明**:可能包含获取SWT库的途径,安装和配置环境的步骤,以及如何获取和使用教程中的资源文件。 11....

    SWT深入内幕之消息机制探秘

    SWT通过以下几个步骤解决了这一问题: 1. **消息监听与分发**: - SWT定义了一系列事件监听器接口,例如`SelectionListener`,这些接口定义了方法用于响应特定类型的消息。 - 当创建一个控件时,可以通过注册监听...

    SWT 3.7 API Help doc html版 swt3.7帮助文档

    10. **问题解决**:可能还包括常见问题解答(FAQ)和一些调试技巧,帮助开发者解决在实际开发中遇到的问题。 通过阅读和查阅这个SWT 3.7的帮助文档,开发者不仅可以掌握如何使用这个版本的SWT,还能了解到如何设计...

    SWT_AWT_Swing事件处理机制

    在Java编程语言中,SWT(Standard Widget Toolkit)、AWT(Abstract Window Toolkit)和Swing是用于构建图形用户界面(GUI)...同时,对源码的探索也有助于开发者深入理解Java GUI编程的底层原理,提高解决问题的能力。

    java SWT编写JGroup局域网聊天程序

    经过调查与咨询,作者了解到在使用 SWT 和 JGroups 进行通信时需要处理好线程同步问题,可以通过调用 `Display.syncExec(Runnable r)` 方法来解决这个问题。 #### 二、SWT 简介及在本项目中的应用 **SWT (Standard...

Global site tag (gtag.js) - Google Analytics