本文译自《
						Eclipse.Building.Commercial.Quality.Plug.ins.2nd.Edition
						》第四章第二节,详细解释了
						SWT
						程序的语句,希望对入门者有所帮助。
				
		
		
				
						
								
								  本文地址:http://www.blogjava.net/cpenet/archive/2006/07/03/56407.html
				
		
		
				
						让我们从简单的
						HelloWorld
						应用程序开始。
				
		
		
				 一、将SWT添加到工程的类路径中
		
		
				
				
				首先建立一个java工程。在开始使用SWT之前,需要将SWT库文件添加到工程的类路径中。步骤如下: 
		
		
				
						
								1.    
						下载SWT。在Eclipse SDK的下载页面中,提供了独立版本的SWT下载。找到标有SWT Binary and Source的栏目。下载适合你操作系统的版本,不用解压,直接保存到硬盘中。
		
		
				
				
				
				
				
						
								2.    
						在Eclipse菜单栏,选择File-〉Import...打开导入向导 
		
		
				
				
				
						
								3.    
						选择Existing Projects into Workspace,点击Next按钮
		
		
				
						
								4.    
						选择 Select archive file并使用 Browse...按钮来找到你刚才下载的SWT文件。 
		
		
				 5.    点击Finish按钮,完成SWT导入。 
		
		
				 6.    右键点击你建立的工程,选择Properties
				
				
				
				
				来打开Properties对话框。
		
		
				 7.    选择 Java Build Path -> Projects tab并点击Add按钮.
		
		
				 8.    选择 org.eclipse.swt工程, 点击 OK,完成添加SWT库到你的工程中(见图1).
		
		
				
						
						
								
								
								
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
										
								
								
								
								
								
						
						
								
 
				
				
				
		
		
				
						
								                              
						
						图
						1
				
		
		
				二、 SWT 代码
		
		
				
						现在在你建立的java工程中,新建一个java文件,取名为 
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
						
								HelloWorld。在HelloWorld.java文件中把main()方法覆盖为以下代码:  
				
		
		
				
				
		
		
				
						
						
				
		
		
				
				
						1
						   
						public
						 
						static
						 
						void
				
				
						 main(String[] args) {
						2
						      Display display 
						=
						 
						new
				
				
						 Display();
						3
						      Shell shell 
						=
						 
						new
				
				
						 Shell(display);
						4
						      shell.setText(
						"
						Hello World
						"
				
				
						);
						5
						      shell.setBounds(
						100
						, 
						100
						, 
						200
						, 
						50
				
				
						);
						6
						      shell.setLayout(
						new
				
				
						 FillLayout());
						7
						      Label label 
						=
						 
						new
				
				
						 Label(shell, SWT.CENTER);
						8
						      label.setText(
						"
						Hello World
						"
				
				
						);
						9
						      Color red 
						=
						 
						new
						 Color(display, 
						255
						, 
						0
						, 
						0
				
				
						);
						10
				
				
						     label.setForeground(red);
						11
				
				
						     shell.open();
						12
						     
						while
						 (
						!
				
				
						shell.isDisposed()) {
						13
						        
						if
						 (
						!
				
				
						display.readAndDispatch()) display.sleep();
						14
				
				
						     }
						15
				
				
						     red.dispose();
						16
				
				
						     display.dispose();
						17
				
				
						  } 
				
		
		
				
						
								
								
						
				
		
		
				
						注:
				
		
		
				
						在覆盖了上述代码后, 选择菜单栏中的 
						
						
						
								
										Source
								
								-> Organize Imports命令 (或者按Ctrl+Shift+O) 来把需要引用的SWT包导入到HelloWorld.java文件中 
						
						
						。
				
		
		
				
				
				
				
				
				
				
				
				
				
				
				
				
				
				
						以下是对各行代码的详细解释:
				
		
		
				
						第2行:每个基于SWT的应用程序都有一个Display类的实例。用来将低层平台和SWT进行链接。除了管理SWT的事件循环,还能访问SWT需要的平台资源。在16行,display实例将会提交给垃圾收集器。
				
		
		
				
						第3行:每一个窗口都有一个Shell窗口框架,来与用户进行交互。Shell像所有的windows系统一样来处理动作行为,并作为窗口控件的放置场所。
				
		
		
				
						第4行: setText()方法设置窗口的标题.
				
		
		
				
						第5行: setBounds() 方法设置窗口的大小和放置的位置. 在这个例子中, 设置窗口为200个像素宽,50个像素高,并放在离屏幕的左上角100x100像素的位置上。
				
		
		
				
						第6行: setLayout()方法 设置窗口框架的布局. FillLayout,充满式布局管理器,使得组件大小会尽量的充满整个容器.SWT的布局管理器会在以后详细介绍。 
				
		
		
				
						第7行:在shell上新建一个简单的label组件并居中显示label的文本内容。
				
		
		
				
						第8行: setText() 方法 设置label的文本内容。
				
		
		
				
						第9行:创建一个红色的颜色类的实例。你也可以使用以下语句获得系统红色的实例:
				
		
		
				
						Color red = display.getSystemColor(SWT.COLOR_RED);
				
		
		
				
						第10行: setForeground() 方法  设置label的前景色
				
		
		
				
						第11行:到目前为止,窗口框架还是不可见的。通过open()方法使得窗口可见。
				
		
		
				
						第12行: while语句循环检测窗口有没有关闭。
				
		
		
				
						第13行:display 控制事件的循环. readAndDispatch() 方法从平台的事件队列中读取事件,并分配他们到合适的处理程序(接收者)。只要队列中一直有事件可以处理,这个方法一直返回true,当事件队列为空时,则返回false(因此允许用户界面UI线程出于sleep状态直到事件队列不为空)。 
				
		
		
				
						第15,16行:当循环检测到窗口被关闭时,需要将color,display和一些相关联的平台资源释放。注意到系统颜色实例(colors)将会被提交释放。
				
		
		
				
						
								二、            
						
						运行这个例子
				
		
		
				
						通常情况下,为了启动一个java应用程序,会使用Run As -〉
						
								
										Java Application
								
						
						
								命令。在这里,如此运行将会抛出
						
						
								UnsatisfiedLinkError
						
						异常,说明没有找到
						SWT
						的本地库。如果运行
						
								
										Run As > SWT Application
								
								
								
						
						
								命令,将会弹出
								SWT
						
						
								启动配置窗口,见图
								2
						
						
								,在图
								2
						
						
								中可以点击
								
										run
								
						
						
								按钮。 
						
						
								
								
						
				
		
		
				
						 
				
		
		
				
						
								                                
						
						图
						2
				
		
		
				
						点击
						
								run
						
						,运行结果图
						3
						。
				
		
		
				
						 
				
		
		
				
						
								          
						
						图
						3
				
		
		
				
						(以后继续)