﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-GINA's Blog-文章分类-SWT/JFace</title><link>http://www.blogjava.net/gina/category/22812.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 19 Jun 2007 19:39:47 GMT</lastBuildDate><pubDate>Tue, 19 Jun 2007 19:39:47 GMT</pubDate><ttl>60</ttl><item><title>SWT/JFACE学习一</title><link>http://www.blogjava.net/gina/articles/121446.html</link><dc:creator>愤怒的GINA</dc:creator><author>愤怒的GINA</author><pubDate>Fri, 01 Jun 2007 19:24:00 GMT</pubDate><guid>http://www.blogjava.net/gina/articles/121446.html</guid><wfw:comment>http://www.blogjava.net/gina/comments/121446.html</wfw:comment><comments>http://www.blogjava.net/gina/articles/121446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/gina/comments/commentRss/121446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/gina/services/trackbacks/121446.html</trackback:ping><description><![CDATA[<p style="FONT-FAMILY: Courier" align=justify>SWT中的包<br>swt是Eclipse图象API的基础。<br>1、org.eclipse.swt.widgets<br>最常用的组件基本都在此包中，如Button、Text、Label、Combo等。其中<br>2个最重要的组件是Shell和Composite。Shell相当于应用程序的主窗体；<br>Composite是容纳组件的容器，相当于SWING中的Panel对象。<br>2、org.eclipse.swt.layout<br>主要的界面布局方式在此包中。SWT对组件的布局也采用了AWT/SWING中的Layout<br>和LayoutData结合的方式。<br>3、org.eclipse.swt.custom<br>对一些基本图形组件的扩展在此包中，比如其中的CLabel就是对标准的Label组件的扩展，<br>在Clabel上可以同时加入文字和图片。在此包中还有一个新的布局方式StackLayout<br>4、org.eclipse.swt.event<br>swt采用了和AWT/SWING一样的事件模型，在包中可以找到事件监听类和响应的事件对象。<br>比如鼠标事件监听器MouseListener,MouseMoveListener等，及对应的事件对象<br>MouseEvent.<br>5、org.eclipse.swt.graphics<br>此包中包含针对图片、光标、字体或绘图API.比如，可通过Image类调用系统中不同的类型<br>的图片文件。<br>6、org.eclipse.swt.ole.win32<br>对不同平台，SWT有一些针对性的API。<br><br></p>
<div style="FONT-FAMILY: Courier" align=justify>&nbsp;1<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>package&nbsp;edu.ch4;<br>&nbsp;2<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>import&nbsp;org.eclipse.swt.SWT;<br>&nbsp;3<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>import&nbsp;org.eclipse.swt.widgets.Display;<br>&nbsp;4<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>import&nbsp;org.eclipse.swt.widgets.Text;<br>&nbsp;5<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>import&nbsp;org.eclipse.set.widgets.Shell;<br>&nbsp;6<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>import&nbsp;org.eclipse.swt.graphics.*;<br>&nbsp;7<img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br>&nbsp;8<img id=Codehighlighter1_217_913_Open_Image onclick="this.style.display='none'; Codehighlighter1_217_913_Open_Text.style.display='none'; Codehighlighter1_217_913_Closed_Image.style.display='inline'; Codehighlighter1_217_913_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_217_913_Closed_Image onclick="this.style.display='none'; Codehighlighter1_217_913_Closed_Text.style.display='none'; Codehighlighter1_217_913_Open_Image.style.display='inline'; Codehighlighter1_217_913_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>public&nbsp;class&nbsp;HelloSWT<img src="http://www.blogjava.net/Images/dot.gif">{<br>&nbsp;9<img id=Codehighlighter1_258_911_Open_Image onclick="this.style.display='none'; Codehighlighter1_258_911_Open_Text.style.display='none'; Codehighlighter1_258_911_Closed_Image.style.display='inline'; Codehighlighter1_258_911_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_258_911_Closed_Image onclick="this.style.display='none'; Codehighlighter1_258_911_Closed_Text.style.display='none'; Codehighlighter1_258_911_Open_Image.style.display='inline'; Codehighlighter1_258_911_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)<img src="http://www.blogjava.net/Images/dot.gif">{<br>10<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display&nbsp;display=new&nbsp;Display();//创建一个display对象<br>11<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell&nbsp;shell=new&nbsp;Shell(display);//shell是程序的主窗体<br>12<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setLayout(null);//设置shell的布局方式<br>13<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Text&nbsp;hello=new&nbsp;Text(shell,SWT.MULTI);//声明一个可以显示多行信息的文本框<br>14<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText("JAVA应用程序");//设置主窗体的标题<br>15<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shel.setSize(200,100);//设置主窗体的大小<br>16<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color&nbsp;color=new&nbsp;Color(Display.getCurrent(),255,255,255);//声明颜色对象<br>17<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setBackground(color);<br>18<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hello.setText("Hello,SWT&nbsp;WOrld!\n\n你好，SWT世界!");//设置文本框信息<br>19<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hello.pack();//自动调整文本框的大小<br>20<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//shell.pack();//自动调整主窗体的大小<br>21<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();//打开主窗体<br>22<img id=Codehighlighter1_794_876_Open_Image onclick="this.style.display='none'; Codehighlighter1_794_876_Open_Text.style.display='none'; Codehighlighter1_794_876_Closed_Image.style.display='inline'; Codehighlighter1_794_876_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_794_876_Closed_Image onclick="this.style.display='none'; Codehighlighter1_794_876_Closed_Text.style.display='none'; Codehighlighter1_794_876_Open_Image.style.display='inline'; Codehighlighter1_794_876_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!shell.isDisposed())<img src="http://www.blogjava.net/Images/dot.gif">{<br>23<img id=Codehighlighter1_829_872_Open_Image onclick="this.style.display='none'; Codehighlighter1_829_872_Open_Text.style.display='none'; Codehighlighter1_829_872_Closed_Image.style.display='inline'; Codehighlighter1_829_872_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_829_872_Closed_Image onclick="this.style.display='none'; Codehighlighter1_829_872_Closed_Text.style.display='none'; Codehighlighter1_829_872_Open_Image.style.display='inline'; Codehighlighter1_829_872_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!display.readAndDispatch())<img src="http://www.blogjava.net/Images/dot.gif">{//如果display不忙<br>24<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.sleep();//休眠<br>25<img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>26<img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>27<img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose();//销毁display<br>28<img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}<br>29<img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</div>
<p style="FONT-FAMILY: Courier" align=justify><br>创建一个Display<br>创建一个或多个Shell<br>设置Shell中的布局<br>创建Shell中的组件-<br>用Open()方法打开Shell窗体<br>-写一个事件转发循环-销毁display </p>
<img src ="http://www.blogjava.net/gina/aggbug/121446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/gina/" target="_blank">愤怒的GINA</a> 2007-06-02 03:24 <a href="http://www.blogjava.net/gina/articles/121446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>