﻿<?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-DANCE WITH JAVA-随笔分类-SWT和插件开发</title><link>http://www.blogjava.net/dreamstone/category/24602.html</link><description>开发出高质量的系统</description><language>zh-cn</language><lastBuildDate>Mon, 14 Sep 2009 20:13:03 GMT</lastBuildDate><pubDate>Mon, 14 Sep 2009 20:13:03 GMT</pubDate><ttl>60</ttl><item><title>做了个osworkflow的designer工具，模仿jbpm的样式。大家试用用</title><link>http://www.blogjava.net/dreamstone/archive/2009/09/14/295047.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 14 Sep 2009 10:01:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2009/09/14/295047.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/295047.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2009/09/14/295047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/295047.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/295047.html</trackback:ping><description><![CDATA[eclipse3.2版本，依赖wst和gef<br />
http://www.blogjava.net/Files/dreamstone/eclipse1.part1.rar<br />
<a href="http://www.blogjava.net/Files/dreamstone/eclipse1.part2.rar">http://www.blogjava.net/Files/dreamstone/eclipse1.part<font color="#000000">2</font>.rar</a><br />
<a href="http://www.blogjava.net/Files/dreamstone/eclipse1.part3.rar">http://www.blogjava.net/Files/dreamstone/eclipse1.part<font color="#000000">3</font>.rar</a><br />
<a href="http://www.blogjava.net/Files/dreamstone/eclipse1.part4.rar">http://www.blogjava.net/Files/dreamstone/eclipse1.part<font color="#000000">4</font>.rar</a><br />
<a href="http://www.blogjava.net/Files/dreamstone/eclipse1.part5.rar">http://www.blogjava.net/Files/dreamstone/eclipse1.part<font color="#000000">5</font>.rar</a><br />
<a href="http://www.blogjava.net/Files/dreamstone/eclipse1.part6.rar">http://www.blogjava.net/Files/dreamstone/eclipse1.part<font color="#000000">6</font>.rar</a>
<img src ="http://www.blogjava.net/dreamstone/aggbug/295047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2009-09-14 18:01 <a href="http://www.blogjava.net/dreamstone/archive/2009/09/14/295047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse 插件开发中如何实现刷新和重编译</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/28/140578.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 28 Aug 2007 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/28/140578.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/140578.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/28/140578.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/140578.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/140578.html</trackback:ping><description><![CDATA[在做eclipse插件开发中，特别是自动生成代码或者uml-&gt;代码的插件中，有时需要刷新一下文件夹<br>或者重新编译一下.那如何实现这两个操作呢。<br>一、实现刷新<br>1、一个关键的接口是org.eclipse.core.resources.IResource<br>调用这个接口的refreshLocal方法即可。例如refreshLocal(IResource.DEPTH_INFINITE, null)<br>2、到底有哪些类实现了这个接口呢?<br>来看一下继承结构<br>首先继承自IResource的接口有IContainer、IFolder、IProject、IWorkspaceRoot、IFile一共5个<br>加上IResource 6个，凡是实现这些接口的都可以。<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">3</span><span style="COLOR: #000000">、接口的继承结构</span><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>接口&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>IResource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;无&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>IContainer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IResource<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>IFile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IResource<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>IFolder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IContainer<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>IProject&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;IContainer<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>IWorkspaceRoot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IContainer</span></div>
<br><span style="COLOR: #000000">4</span><span style="COLOR: #000000">、类的继承结构</span>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>类&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Resource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;无&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; IResource<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;IContainer<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>File&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Resource&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;IFile<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Folder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;Container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IFolder<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>Project&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;IProject<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>WorkspaceRoot&nbsp;&nbsp;&nbsp;&nbsp;Container&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IWorkspaceRoot</span></div>
<br>二、实现重编译(也就是clean)<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">clean&nbsp;all:<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.CLEAN_BUILD,<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>monitor);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>clean&nbsp;one&nbsp;project<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>((IProject)&nbsp;selection[i]).build(IncrementalProjectBuilder.CLEAN_BUILD,&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>SubProgressMonitor(monitor,&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
感谢<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#108;&#117;&#109;&#97;&#64;&#115;&#109;&#116;&#104;">luma@smth</a> <a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#99;&#108;&#111;&#117;&#100;&#111;&#114;&#64;&#115;&#109;&#116;&#104;">cloudor@smth</a>的帮忙<br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/140578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-28 16:32 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/28/140578.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface进度条</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/10/135728.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 10 Aug 2007 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/10/135728.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/135728.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/10/135728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/135728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/135728.html</trackback:ping><description><![CDATA[处理长时间的任务的时候常需要进度条显示，有几种实现方式<br>1，普通的进度条<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.lang.reflect.InvocationTargetException;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.core.runtime.IProgressMonitor;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.dialogs.ProgressMonitorDialog;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.operation.IRunnableWithProgress;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Display;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_323_1188_Open_Image onclick="this.style.display='none'; Codehighlighter1_323_1188_Open_Text.style.display='none'; Codehighlighter1_323_1188_Closed_Image.style.display='inline'; Codehighlighter1_323_1188_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_323_1188_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_323_1188_Closed_Text.style.display='none'; Codehighlighter1_323_1188_Open_Image.style.display='inline'; Codehighlighter1_323_1188_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TestProgress&nbsp;</span><span id=Codehighlighter1_323_1188_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_323_1188_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000">&nbsp;stopflg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_359_409_Open_Image onclick="this.style.display='none'; Codehighlighter1_359_409_Open_Text.style.display='none'; Codehighlighter1_359_409_Closed_Image.style.display='inline'; Codehighlighter1_359_409_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_359_409_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_359_409_Closed_Text.style.display='none'; Codehighlighter1_359_409_Open_Image.style.display='inline'; Codehighlighter1_359_409_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_359_409_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</span><span id=Codehighlighter1_359_409_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Launch&nbsp;the&nbsp;application<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000">&nbsp;args<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_467_1185_Open_Image onclick="this.style.display='none'; Codehighlighter1_467_1185_Open_Text.style.display='none'; Codehighlighter1_467_1185_Closed_Image.style.display='inline'; Codehighlighter1_467_1185_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_467_1185_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_467_1185_Closed_Text.style.display='none'; Codehighlighter1_467_1185_Open_Image.style.display='inline'; Codehighlighter1_467_1185_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_467_1185_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_467_1185_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Display&nbsp;display&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Display.getDefault();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Shell&nbsp;shell&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Shell();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(</span><span style="COLOR: #000000">500</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">375</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SWT&nbsp;Application</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//<br><img id=Codehighlighter1_685_993_Open_Image onclick="this.style.display='none'; Codehighlighter1_685_993_Open_Text.style.display='none'; Codehighlighter1_685_993_Closed_Image.style.display='inline'; Codehighlighter1_685_993_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_685_993_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_685_993_Closed_Text.style.display='none'; Codehighlighter1_685_993_Open_Image.style.display='inline'; Codehighlighter1_685_993_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IRunnableWithProgress&nbsp;runnable&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;IRunnableWithProgress()</span><span id=Codehighlighter1_685_993_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_685_993_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_787_989_Open_Image onclick="this.style.display='none'; Codehighlighter1_787_989_Open_Text.style.display='none'; Codehighlighter1_787_989_Closed_Image.style.display='inline'; Codehighlighter1_787_989_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_787_989_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_787_989_Closed_Text.style.display='none'; Codehighlighter1_787_989_Open_Image.style.display='inline'; Codehighlighter1_787_989_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;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;run(IProgressMonitor&nbsp;monitor)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;InvocationTargetException,&nbsp;InterruptedException&nbsp;</span><span id=Codehighlighter1_787_989_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_787_989_Open_Text><span style="COLOR: #000000">{<br><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;monitor.beginTask(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">generate</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_854_959_Open_Image onclick="this.style.display='none'; Codehighlighter1_854_959_Open_Text.style.display='none'; Codehighlighter1_854_959_Closed_Image.style.display='inline'; Codehighlighter1_854_959_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_854_959_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_854_959_Closed_Text.style.display='none'; Codehighlighter1_854_959_Open_Image.style.display='inline'; Codehighlighter1_854_959_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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_854_959_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_854_959_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_885_906_Open_Image onclick="this.style.display='none'; Codehighlighter1_885_906_Open_Text.style.display='none'; Codehighlighter1_885_906_Closed_Image.style.display='inline'; Codehighlighter1_885_906_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_885_906_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_885_906_Closed_Text.style.display='none'; Codehighlighter1_885_906_Open_Image.style.display='inline'; Codehighlighter1_885_906_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(monitor.isCanceled())</span><span id=Codehighlighter1_885_906_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_885_906_Open_Text><span style="COLOR: #000000">{<br><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><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;&nbsp;&nbsp;&nbsp;&nbsp;monitor.worked(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><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;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><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;<br><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;monitor.done();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ProgressMonitorDialog(shell).run(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,&nbsp;runnable);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.layout();<br><img id=Codehighlighter1_1122_1182_Open_Image onclick="this.style.display='none'; Codehighlighter1_1122_1182_Open_Text.style.display='none'; Codehighlighter1_1122_1182_Closed_Image.style.display='inline'; Codehighlighter1_1122_1182_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1122_1182_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1122_1182_Closed_Text.style.display='none'; Codehighlighter1_1122_1182_Open_Image.style.display='inline'; Codehighlighter1_1122_1182_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">shell.isDisposed())&nbsp;</span><span id=Codehighlighter1_1122_1182_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1122_1182_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">display.readAndDispatch())<br><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><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
2,反复循环的进度条<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.lang.reflect.InvocationTargetException;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.core.runtime.IProgressMonitor;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.dialogs.ProgressMonitorDialog;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.operation.IRunnableWithProgress;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Display;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_323_1257_Open_Image onclick="this.style.display='none'; Codehighlighter1_323_1257_Open_Text.style.display='none'; Codehighlighter1_323_1257_Closed_Image.style.display='inline'; Codehighlighter1_323_1257_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_323_1257_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_323_1257_Closed_Text.style.display='none'; Codehighlighter1_323_1257_Open_Image.style.display='inline'; Codehighlighter1_323_1257_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TestProgress&nbsp;</span><span id=Codehighlighter1_323_1257_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_323_1257_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000">&nbsp;stopflg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_359_409_Open_Image onclick="this.style.display='none'; Codehighlighter1_359_409_Open_Text.style.display='none'; Codehighlighter1_359_409_Closed_Image.style.display='inline'; Codehighlighter1_359_409_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_359_409_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_359_409_Closed_Text.style.display='none'; Codehighlighter1_359_409_Open_Image.style.display='inline'; Codehighlighter1_359_409_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_359_409_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</span><span id=Codehighlighter1_359_409_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Launch&nbsp;the&nbsp;application<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000">&nbsp;args<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_467_1254_Open_Image onclick="this.style.display='none'; Codehighlighter1_467_1254_Open_Text.style.display='none'; Codehighlighter1_467_1254_Closed_Image.style.display='inline'; Codehighlighter1_467_1254_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_467_1254_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_467_1254_Closed_Text.style.display='none'; Codehighlighter1_467_1254_Open_Image.style.display='inline'; Codehighlighter1_467_1254_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;Exception</span><span id=Codehighlighter1_467_1254_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_467_1254_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Display&nbsp;display&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Display.getDefault();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Shell&nbsp;shell&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Shell();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(</span><span style="COLOR: #000000">500</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">375</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SWT&nbsp;Application</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//<br><img id=Codehighlighter1_685_1062_Open_Image onclick="this.style.display='none'; Codehighlighter1_685_1062_Open_Text.style.display='none'; Codehighlighter1_685_1062_Closed_Image.style.display='inline'; Codehighlighter1_685_1062_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_685_1062_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_685_1062_Closed_Text.style.display='none'; Codehighlighter1_685_1062_Open_Image.style.display='inline'; Codehighlighter1_685_1062_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IRunnableWithProgress&nbsp;runnable&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;IRunnableWithProgress()</span><span id=Codehighlighter1_685_1062_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_685_1062_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_787_1058_Open_Image onclick="this.style.display='none'; Codehighlighter1_787_1058_Open_Text.style.display='none'; Codehighlighter1_787_1058_Closed_Image.style.display='inline'; Codehighlighter1_787_1058_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_787_1058_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_787_1058_Closed_Text.style.display='none'; Codehighlighter1_787_1058_Open_Image.style.display='inline'; Codehighlighter1_787_1058_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;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;run(IProgressMonitor&nbsp;monitor)&nbsp;</span><span style="COLOR: #0000ff">throws</span><span style="COLOR: #000000">&nbsp;InvocationTargetException,&nbsp;InterruptedException&nbsp;</span><span id=Codehighlighter1_787_1058_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_787_1058_Open_Text><span style="COLOR: #000000">{<br><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;monitor.beginTask(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">generate</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">);<br><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;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_856_1033_Open_Image onclick="this.style.display='none'; Codehighlighter1_856_1033_Open_Text.style.display='none'; Codehighlighter1_856_1033_Closed_Image.style.display='inline'; Codehighlighter1_856_1033_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_856_1033_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_856_1033_Closed_Text.style.display='none'; Codehighlighter1_856_1033_Open_Image.style.display='inline'; Codehighlighter1_856_1033_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;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_856_1033_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_856_1033_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_874_894_Open_Image onclick="this.style.display='none'; Codehighlighter1_874_894_Open_Text.style.display='none'; Codehighlighter1_874_894_Closed_Image.style.display='inline'; Codehighlighter1_874_894_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_874_894_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_874_894_Closed_Text.style.display='none'; Codehighlighter1_874_894_Open_Image.style.display='inline'; Codehighlighter1_874_894_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(stopflg)</span><span id=Codehighlighter1_874_894_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_874_894_Open_Text><span style="COLOR: #000000">{<br><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><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;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_920_979_Open_Image onclick="this.style.display='none'; Codehighlighter1_920_979_Open_Text.style.display='none'; Codehighlighter1_920_979_Closed_Image.style.display='inline'; Codehighlighter1_920_979_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_920_979_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_920_979_Closed_Text.style.display='none'; Codehighlighter1_920_979_Open_Image.style.display='inline'; Codehighlighter1_920_979_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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(i</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_920_979_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_920_979_Open_Text><span style="COLOR: #000000">{<br><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;monitor.beginTask(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">generate</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">30</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><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;&nbsp;&nbsp;&nbsp;&nbsp;monitor.worked(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><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;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><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;monitor.done();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ProgressMonitorDialog(shell).run(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">,&nbsp;runnable);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.layout();<br><img id=Codehighlighter1_1191_1251_Open_Image onclick="this.style.display='none'; Codehighlighter1_1191_1251_Open_Text.style.display='none'; Codehighlighter1_1191_1251_Closed_Image.style.display='inline'; Codehighlighter1_1191_1251_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1191_1251_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1191_1251_Closed_Text.style.display='none'; Codehighlighter1_1191_1251_Open_Image.style.display='inline'; Codehighlighter1_1191_1251_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">shell.isDisposed())&nbsp;</span><span id=Codehighlighter1_1191_1251_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1191_1251_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">display.readAndDispatch())<br><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><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
3,rcp中后台任务的进度条<br>使用Job建立后台任务，只需要设置job.setUser(true)进度条就出现了，和上边一样，进度条需要自己来控制进度。如果做一个cool的进度条，就看你如何让进度条显示出实际的任务进程。
<img src ="http://www.blogjava.net/dreamstone/aggbug/135728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-10 09:59 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/10/135728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给自定义Dialog加入保留对话框值的功能</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/09/134565.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 09 Aug 2007 10:13:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/09/134565.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134565.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/09/134565.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134565.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134565.html</trackback:ping><description><![CDATA[有的时候我们需要这样的功能，记下Dialog中的值，当再次打开这个Dialog的时候，还原这些值。这就需要把这些Dialog的值保存起来。Dialog的IDialogSettings类提供了这个功能。下边是使用方法:<br>在上例"自定义Dialog"的代码上加入三个函数：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_23_453_Open_Image onclick="this.style.display='none'; Codehighlighter1_23_453_Open_Text.style.display='none'; Codehighlighter1_23_453_Closed_Image.style.display='inline'; Codehighlighter1_23_453_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_23_453_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_23_453_Closed_Text.style.display='none'; Codehighlighter1_23_453_Open_Image.style.display='inline'; Codehighlighter1_23_453_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;saveState()</span><span id=Codehighlighter1_23_453_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_23_453_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_83_99_Open_Image onclick="this.style.display='none'; Codehighlighter1_83_99_Open_Text.style.display='none'; Codehighlighter1_83_99_Closed_Image.style.display='inline'; Codehighlighter1_83_99_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_83_99_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_83_99_Closed_Text.style.display='none'; Codehighlighter1_83_99_Open_Image.style.display='inline'; Codehighlighter1_83_99_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(text.getText()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;text.getText().equals(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">))</span><span id=Codehighlighter1_83_99_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_83_99_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDialogSettings&nbsp;topSettings&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getTopSettings();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDialogSettings&nbsp;settings&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;&nbsp;topSettings.getSection(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TestDialog</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(settings&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)settings&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;topSettings.addNewSection(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TestDialog</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;settings.put(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;text.getText());<br><img id=Codehighlighter1_339_386_Open_Image onclick="this.style.display='none'; Codehighlighter1_339_386_Open_Text.style.display='none'; Codehighlighter1_339_386_Closed_Image.style.display='inline'; Codehighlighter1_339_386_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_339_386_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_339_386_Closed_Text.style.display='none'; Codehighlighter1_339_386_Open_Image.style.display='inline'; Codehighlighter1_339_386_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span id=Codehighlighter1_339_386_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_339_386_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topSettings.save(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">content/system.xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_407_450_Open_Image onclick="this.style.display='none'; Codehighlighter1_407_450_Open_Text.style.display='none'; Codehighlighter1_407_450_Closed_Image.style.display='inline'; Codehighlighter1_407_450_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_407_450_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_407_450_Closed_Text.style.display='none'; Codehighlighter1_407_450_Open_Image.style.display='inline'; Codehighlighter1_407_450_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(IOException&nbsp;e)</span><span id=Codehighlighter1_407_450_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_407_450_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_482_738_Open_Image onclick="this.style.display='none'; Codehighlighter1_482_738_Open_Text.style.display='none'; Codehighlighter1_482_738_Closed_Image.style.display='inline'; Codehighlighter1_482_738_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_482_738_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_482_738_Closed_Text.style.display='none'; Codehighlighter1_482_738_Open_Image.style.display='inline'; Codehighlighter1_482_738_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;restoreState()</span><span id=Codehighlighter1_482_738_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_482_738_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDialogSettings&nbsp;topSettings&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;getTopSettings();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDialogSettings&nbsp;settings&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;&nbsp;topSettings.getSection(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">TestDialog</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(settings&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_691_735_Open_Image onclick="this.style.display='none'; Codehighlighter1_691_735_Open_Text.style.display='none'; Codehighlighter1_691_735_Closed_Image.style.display='inline'; Codehighlighter1_691_735_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_691_735_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_691_735_Closed_Text.style.display='none'; Codehighlighter1_691_735_Open_Image.style.display='inline'; Codehighlighter1_691_735_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(text.getText()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;text.getText().equals(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">))</span><span id=Codehighlighter1_691_735_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_691_735_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setText(settings.get(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">value</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_780_985_Open_Image onclick="this.style.display='none'; Codehighlighter1_780_985_Open_Text.style.display='none'; Codehighlighter1_780_985_Closed_Image.style.display='inline'; Codehighlighter1_780_985_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_780_985_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_780_985_Closed_Text.style.display='none'; Codehighlighter1_780_985_Open_Image.style.display='inline'; Codehighlighter1_780_985_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;IDialogSettings&nbsp;getTopSettings()</span><span id=Codehighlighter1_780_985_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_780_985_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IDialogSettings&nbsp;topSettings&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DialogSettings(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">system</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_849_896_Open_Image onclick="this.style.display='none'; Codehighlighter1_849_896_Open_Text.style.display='none'; Codehighlighter1_849_896_Closed_Image.style.display='inline'; Codehighlighter1_849_896_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_849_896_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_849_896_Closed_Text.style.display='none'; Codehighlighter1_849_896_Open_Image.style.display='inline'; Codehighlighter1_849_896_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span id=Codehighlighter1_849_896_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_849_896_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;topSettings.load(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">content/system.xml</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_917_960_Open_Image onclick="this.style.display='none'; Codehighlighter1_917_960_Open_Text.style.display='none'; Codehighlighter1_917_960_Closed_Image.style.display='inline'; Codehighlighter1_917_960_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_917_960_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_917_960_Closed_Text.style.display='none'; Codehighlighter1_917_960_Open_Image.style.display='inline'; Codehighlighter1_917_960_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(IOException&nbsp;e)</span><span id=Codehighlighter1_917_960_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_917_960_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;topSettings;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>然后在覆写的buttonPressed函数中调用save
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_40_58_Open_Image onclick="this.style.display='none'; Codehighlighter1_40_58_Open_Text.style.display='none'; Codehighlighter1_40_58_Closed_Image.style.display='inline'; Codehighlighter1_40_58_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_40_58_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_40_58_Closed_Text.style.display='none'; Codehighlighter1_40_58_Open_Image.style.display='inline'; Codehighlighter1_40_58_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;buttonPressed(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;button)</span><span id=Codehighlighter1_40_58_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_40_58_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveState();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
在createDialogArea函数中加入取出数据<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_53_362_Open_Image onclick="this.style.display='none'; Codehighlighter1_53_362_Open_Text.style.display='none'; Codehighlighter1_53_362_Closed_Image.style.display='inline'; Codehighlighter1_53_362_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_53_362_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_362_Closed_Text.style.display='none'; Codehighlighter1_53_362_Open_Image.style.display='inline'; Codehighlighter1_53_362_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;Control&nbsp;createDialogArea(Composite&nbsp;parent)&nbsp;</span><span id=Codehighlighter1_53_362_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_53_362_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Composite&nbsp;container&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Composite)&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.createDialogArea(parent);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;container.setLayout(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;RowLayout());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Text(container,&nbsp;SWT.BORDER);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setLayoutData(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;RowData(</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">加入这一句</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_316_339_Open_Image onclick="this.style.display='none'; Codehighlighter1_316_339_Open_Text.style.display='none'; Codehighlighter1_316_339_Closed_Image.style.display='inline'; Codehighlighter1_316_339_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_316_339_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_316_339_Closed_Text.style.display='none'; Codehighlighter1_316_339_Open_Image.style.display='inline'; Codehighlighter1_316_339_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(text.getText()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;text.getText().equals(</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">))</span><span id=Codehighlighter1_316_339_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_316_339_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;restoreState();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;container;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
最后，记得建立需要的文件，在当前workspace下建立文件夹content,然后在文件夹下建立system.xml文件。当然你也可以利用程序来实现。<br>运行一下看看吧，是不是记住了上次填入的内容.<br>source下载:<a href="http://www.blogjava.net/Files/dreamstone/jface-record.rar">http://www.blogjava.net/Files/dreamstone/jface-record.rar</a><br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/134565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-09 18:13 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/09/134565.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swt/jface 自定义 Dialog</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/09/134560.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 09 Aug 2007 09:42:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/09/134560.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134560.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/09/134560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134560.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134560.html</trackback:ping><description><![CDATA[自定义Dialog很简单，下边我们来一步步实现自定义Dialog<br>一、写一个类，继承自Dialog<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.dialogs.Dialog;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_119_187_Open_Image onclick="this.style.display='none'; Codehighlighter1_119_187_Open_Text.style.display='none'; Codehighlighter1_119_187_Closed_Image.style.display='inline'; Codehighlighter1_119_187_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_119_187_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_119_187_Closed_Text.style.display='none'; Codehighlighter1_119_187_Open_Image.style.display='inline'; Codehighlighter1_119_187_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TestDialog&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;Dialog&nbsp;</span><span id=Codehighlighter1_119_187_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_119_187_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_160_185_Open_Image onclick="this.style.display='none'; Codehighlighter1_160_185_Open_Text.style.display='none'; Codehighlighter1_160_185_Closed_Image.style.display='inline'; Codehighlighter1_160_185_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_160_185_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_160_185_Closed_Text.style.display='none'; Codehighlighter1_160_185_Open_Image.style.display='inline'; Codehighlighter1_160_185_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;TestDialog(Shell&nbsp;parentShell)&nbsp;</span><span id=Codehighlighter1_160_185_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_160_185_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">(parentShell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
好了，写好了，如何运行呢？<br>再写一个类：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Display;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_97_288_Open_Image onclick="this.style.display='none'; Codehighlighter1_97_288_Open_Text.style.display='none'; Codehighlighter1_97_288_Closed_Image.style.display='inline'; Codehighlighter1_97_288_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_97_288_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_97_288_Closed_Text.style.display='none'; Codehighlighter1_97_288_Open_Image.style.display='inline'; Codehighlighter1_97_288_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Test&nbsp;</span><span id=Codehighlighter1_97_288_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_97_288_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_139_286_Open_Image onclick="this.style.display='none'; Codehighlighter1_139_286_Open_Text.style.display='none'; Codehighlighter1_139_286_Closed_Image.style.display='inline'; Codehighlighter1_139_286_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_139_286_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_139_286_Closed_Text.style.display='none'; Codehighlighter1_139_286_Open_Image.style.display='inline'; Codehighlighter1_139_286_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id=Codehighlighter1_139_286_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_139_286_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Shell&nbsp;shell&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Shell();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestDialog&nbsp;td&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TestDialog(shell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.setBlockOnOpen(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display.getCurrent().dispose();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
好了运行一下看到效果了吧，带有两个button.<br>二、看到上边的代码是否会想到别的呢？为什么要再写一个类来运行Dialog,不能在内部写个main方法吗？<br>我们来试一下：<br>方法一：参考Jface hello world的的写法:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.dialogs.Dialog;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Display;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_159_393_Open_Image onclick="this.style.display='none'; Codehighlighter1_159_393_Open_Text.style.display='none'; Codehighlighter1_159_393_Closed_Image.style.display='inline'; Codehighlighter1_159_393_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_159_393_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_159_393_Closed_Text.style.display='none'; Codehighlighter1_159_393_Open_Image.style.display='inline'; Codehighlighter1_159_393_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TestDialog&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;Dialog&nbsp;</span><span id=Codehighlighter1_159_393_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_159_393_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_200_225_Open_Image onclick="this.style.display='none'; Codehighlighter1_200_225_Open_Text.style.display='none'; Codehighlighter1_200_225_Closed_Image.style.display='inline'; Codehighlighter1_200_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_200_225_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_200_225_Closed_Text.style.display='none'; Codehighlighter1_200_225_Open_Image.style.display='inline'; Codehighlighter1_200_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;TestDialog(Shell&nbsp;parentShell)&nbsp;</span><span id=Codehighlighter1_200_225_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_200_225_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">(parentShell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_267_391_Open_Image onclick="this.style.display='none'; Codehighlighter1_267_391_Open_Text.style.display='none'; Codehighlighter1_267_391_Closed_Image.style.display='inline'; Codehighlighter1_267_391_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_267_391_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_267_391_Closed_Text.style.display='none'; Codehighlighter1_267_391_Open_Image.style.display='inline'; Codehighlighter1_267_391_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id=Codehighlighter1_267_391_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_267_391_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestDialog&nbsp;td&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TestDialog(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Shell());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.setBlockOnOpen(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display.getCurrent().dispose();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>运行一下看看什么效果，提示找不到main方法。且打印出如下Exception<br>java.lang.ExceptionInInitializerError<br>Caused by: java.lang.NullPointerException<br>&nbsp;at org.eclipse.jface.resource.JFaceResources.getResources(JFaceResources.java:184)<br>&nbsp;at org.eclipse.jface.resource.JFaceResources.getImageRegistry(JFaceResources.java:310)<br>&nbsp;at org.eclipse.jface.dialogs.Dialog.&lt;clinit&gt;(Dialog.java:211)<br>Exception in thread "main" <br>为什么呢？我们是有main方法的，跟进Exception去看看吧。<br>发现问题出现在Dialog类的这段代码上:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_7_450_Open_Image onclick="this.style.display='none'; Codehighlighter1_7_450_Open_Text.style.display='none'; Codehighlighter1_7_450_Closed_Image.style.display='inline'; Codehighlighter1_7_450_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_7_450_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_7_450_Closed_Text.style.display='none'; Codehighlighter1_7_450_Open_Image.style.display='inline'; Codehighlighter1_7_450_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_7_450_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_7_450_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ImageRegistry&nbsp;reg&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;JFaceResources.getImageRegistry();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reg.put(DLG_IMG_MESSAGE_INFO,&nbsp;ImageDescriptor.createFromFile(<br><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;Dialog.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">images/message_info.gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">$NON-NLS-1$</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reg.put(DLG_IMG_MESSAGE_WARNING,&nbsp;ImageDescriptor.createFromFile(<br><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;Dialog.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">images/message_warning.gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">$NON-NLS-1$</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reg.put(DLG_IMG_MESSAGE_ERROR,&nbsp;ImageDescriptor.createFromFile(<br><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;Dialog.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">images/message_error.gif</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">$NON-NLS-1$</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<p>原来在静态代码块上出现了Exception,造成在运行main函数之前就退出了。所以才说没有main函数。<br>我们知道classload在加载一个类的时候，对于静态代码块会逐行执行，按照出现的先后顺序。同时父类的静态代码块一定比子类的先执行。因为<br>在load子类之前会先load父类。这就是为什么hello world中不会出现问题，这里会出现问题的原因。因为Dialog比ApplicationWindow多了这段静态代码。</p>
<p>继续追下去为什么这段代码会出现空指针异常呢，原来这段代码依赖于new Shell()必须先运行。而我们的new Shell()写在main方法里边，肯定是在加载类完成后才能运行的。所以在类内部直接写个main方法是不行的。只能单独写个类来调用。<br>方法二：<br>单独写个类如下：<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Display;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_97_265_Open_Image onclick="this.style.display='none'; Codehighlighter1_97_265_Open_Text.style.display='none'; Codehighlighter1_97_265_Closed_Image.style.display='inline'; Codehighlighter1_97_265_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_97_265_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_97_265_Closed_Text.style.display='none'; Codehighlighter1_97_265_Open_Image.style.display='inline'; Codehighlighter1_97_265_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Test&nbsp;</span><span id=Codehighlighter1_97_265_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_97_265_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_139_263_Open_Image onclick="this.style.display='none'; Codehighlighter1_139_263_Open_Text.style.display='none'; Codehighlighter1_139_263_Closed_Image.style.display='inline'; Codehighlighter1_139_263_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_139_263_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_139_263_Closed_Text.style.display='none'; Codehighlighter1_139_263_Open_Image.style.display='inline'; Codehighlighter1_139_263_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id=Codehighlighter1_139_263_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_139_263_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TestDialog&nbsp;td&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TestDialog(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Shell());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.setBlockOnOpen(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;td.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display.getCurrent().dispose();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
依然是不行的，报同样的错误，为什么？仔细看一下，我们把new Shell()写在构造函数的参数里，其实范了和刚才同样的错误。所以单独提出new Shell()，写在构造函数之前。就得到了文章开始的Test类。平时我们使用的时候为什么不出这个问题呢？因为我们平时使用的时候Dialog从里不是单独存在的，在之前shell早被构造过了。反而是demo更容易出这个问题。<br>好了，上边只是个小插曲，继续我们的自定义Dialog.<br>三、去掉两个按钮<br>虽然Dialog天生带的两个按钮不错，但我们有的时候并不想要这两个按钮，怎么办，如何去掉它？<br>简单，只要我们覆盖父类的createButtonsForButtonBar这个方法就可以了，覆写这个方法，里边什么也不写<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_59_62_Open_Image onclick="this.style.display='none'; Codehighlighter1_59_62_Open_Text.style.display='none'; Codehighlighter1_59_62_Closed_Image.style.display='inline'; Codehighlighter1_59_62_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_59_62_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_59_62_Closed_Text.style.display='none'; Codehighlighter1_59_62_Open_Image.style.display='inline'; Codehighlighter1_59_62_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;createButtonsForButtonBar(Composite&nbsp;parent)&nbsp;</span><span id=Codehighlighter1_59_62_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_59_62_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>看一下按钮消失了。<br>四、加入右上角的最大化和关闭<br>覆写父类的这个方法：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_29_83_Open_Image onclick="this.style.display='none'; Codehighlighter1_29_83_Open_Text.style.display='none'; Codehighlighter1_29_83_Closed_Image.style.display='inline'; Codehighlighter1_29_83_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_29_83_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_29_83_Closed_Text.style.display='none'; Codehighlighter1_29_83_Open_Image.style.display='inline'; Codehighlighter1_29_83_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;getShellStyle()</span><span id=Codehighlighter1_29_83_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_29_83_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.getShellStyle()</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SWT.RESIZE</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SWT.MAX;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>五、改变Dialog的大小<br>覆写这个方法：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_32_76_Open_Image onclick="this.style.display='none'; Codehighlighter1_32_76_Open_Text.style.display='none'; Codehighlighter1_32_76_Closed_Image.style.display='inline'; Codehighlighter1_32_76_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_32_76_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_32_76_Closed_Text.style.display='none'; Codehighlighter1_32_76_Open_Image.style.display='inline'; Codehighlighter1_32_76_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;Point&nbsp;getInitialSize()</span><span id=Codehighlighter1_32_76_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_32_76_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Point(</span><span style="COLOR: #000000">300</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">400</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">300是宽400是高</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
六、加入自己的控件<br>覆写createDialogArea方法<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_53_269_Open_Image onclick="this.style.display='none'; Codehighlighter1_53_269_Open_Text.style.display='none'; Codehighlighter1_53_269_Closed_Image.style.display='inline'; Codehighlighter1_53_269_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_53_269_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_53_269_Closed_Text.style.display='none'; Codehighlighter1_53_269_Open_Image.style.display='inline'; Codehighlighter1_53_269_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;Control&nbsp;createDialogArea(Composite&nbsp;parent)&nbsp;</span><span id=Codehighlighter1_53_269_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_53_269_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Composite&nbsp;container&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Composite)&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.createDialogArea(parent);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;container.setLayout(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;RowLayout());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Text(container,&nbsp;SWT.BORDER);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text.setLayoutData(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;RowData(</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;container;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<br>这里使用了RowLayout<br>七、加入自己的按钮<br>覆写initializeBounds<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_33_146_Open_Image onclick="this.style.display='none'; Codehighlighter1_33_146_Open_Text.style.display='none'; Codehighlighter1_33_146_Closed_Image.style.display='inline'; Codehighlighter1_33_146_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_33_146_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_33_146_Closed_Text.style.display='none'; Codehighlighter1_33_146_Open_Image.style.display='inline'; Codehighlighter1_33_146_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;initializeBounds()</span><span id=Codehighlighter1_33_146_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_33_146_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Composite&nbsp;comp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Composite)getButtonBar();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">super</span><span style="COLOR: #000000">.createButton(comp,&nbsp;IDialogConstants.OK_ID,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">完成</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
好了这里自定义Dialog完成了，然后根据你的需要再Dialog中添加更负载的控件，更多的按钮。最后目的当然是从Dialog取道数值。<br>八、带提示框的Dialog<br>使用方法和前边相同，不同的是不是继承自Dialog而是继承自TitleAreaDialog，然后在createDialogArea中加入两行<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">setTitle(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">标题</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>setMessage(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">提示信息</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">)<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">setMessage可以加上图片，加入的办法是setMessage("提示信息",IMessageProvider.WARNING);如果想加入其他的图片，调用相应的常量。</span></div>
<br>source下载:<a href="http://www.blogjava.net/Files/dreamstone/jface-dialog.rar">http://www.blogjava.net/Files/dreamstone/jface-dialog.rar<br></a>
<img src ="http://www.blogjava.net/dreamstone/aggbug/134560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-09 17:42 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/09/134560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface中提供的dialog</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/09/134536.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 09 Aug 2007 01:39:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/09/134536.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134536.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/09/134536.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134536.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134536.html</trackback:ping><description><![CDATA[Swt/Jface中提供了各种各样的Dialog，一般情况下就能满足我们的需求，现在把这些dialog介绍一下，<br>下一篇文章再继续将如何自定义Dialog<br>一、MessageDialog<br>1,MessageDialog的用法很简单，只需要一句话.<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>MessageDialog.openInfomation(shell,title,message);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>MessageDialog.openConfirm(shell,title,message);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>MessageDialog.openQuestion(shell,title,message);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>MessageDialog.openError(shell,title,message);</span></div>
<p>2，这四个的不同之处有三点：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 提示的图标、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 显示的按钮、&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 返回值<br>openInfomation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 类似i的图标&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;一个确定&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void<br>openConfirm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 问号图标&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 确定和取消&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean<br>openQuestion&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;问号图标&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是和否&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; boolean<br>openError&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;一个X的图标&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;确定&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;void</p>
<p>最后说一下，MessageDialog的大小不能根据内容自动调整，对于少量提示信息的时候显得大了些。<br>3，InputDialog输入的dialog<br>使用方法：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">InputDialog&nbsp;inputDialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;InputDialog(shell,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">标题</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">提示信息</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">默认值</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_113_150_Open_Image onclick="this.style.display='none'; Codehighlighter1_113_150_Open_Text.style.display='none'; Codehighlighter1_113_150_Closed_Image.style.display='inline'; Codehighlighter1_113_150_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_113_150_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_113_150_Closed_Text.style.display='none'; Codehighlighter1_113_150_Open_Image.style.display='inline'; Codehighlighter1_113_150_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(inputDialog.open()&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;InputDialog.OK)</span><span id=Codehighlighter1_113_150_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_113_150_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;value&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.getValue();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
注意最后一个参数是"验证器"，如果想验证数据可以提供一个验证器，并在这里使用。验证其的写法：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img id=Codehighlighter1_50_318_Open_Image onclick="this.style.display='none'; Codehighlighter1_50_318_Open_Text.style.display='none'; Codehighlighter1_50_318_Closed_Image.style.display='inline'; Codehighlighter1_50_318_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_50_318_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_50_318_Closed_Text.style.display='none'; Codehighlighter1_50_318_Open_Image.style.display='inline'; Codehighlighter1_50_318_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MyValidator&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000">&nbsp;IInputValidaor</span><span id=Codehighlighter1_50_318_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_50_318_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_90_316_Open_Image onclick="this.style.display='none'; Codehighlighter1_90_316_Open_Text.style.display='none'; Codehighlighter1_90_316_Closed_Image.style.display='inline'; Codehighlighter1_90_316_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_90_316_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_90_316_Closed_Text.style.display='none'; Codehighlighter1_90_316_Open_Image.style.display='inline'; Codehighlighter1_90_316_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;String&nbsp;isValid(String&nbsp;newText)</span><span id=Codehighlighter1_90_316_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_90_316_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">float</span><span style="COLOR: #000000">&nbsp;value&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_116_168_Open_Image onclick="this.style.display='none'; Codehighlighter1_116_168_Open_Text.style.display='none'; Codehighlighter1_116_168_Closed_Image.style.display='inline'; Codehighlighter1_116_168_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_116_168_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_116_168_Closed_Text.style.display='none'; Codehighlighter1_116_168_Open_Image.style.display='inline'; Codehighlighter1_116_168_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">try</span><span id=Codehighlighter1_116_168_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_116_168_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Float.valueOf(newText).floatValue();<br><img id=Codehighlighter1_199_225_Open_Image onclick="this.style.display='none'; Codehighlighter1_199_225_Open_Text.style.display='none'; Codehighlighter1_199_225_Closed_Image.style.display='inline'; Codehighlighter1_199_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_199_225_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_199_225_Closed_Text.style.display='none'; Codehighlighter1_199_225_Open_Image.style.display='inline'; Codehighlighter1_199_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">catch</span><span style="COLOR: #000000">(NumberFormatException&nbsp;e)</span><span id=Codehighlighter1_199_225_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_199_225_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">错误:请输入数值</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_253_273_Open_Image onclick="this.style.display='none'; Codehighlighter1_253_273_Open_Text.style.display='none'; Codehighlighter1_253_273_Closed_Image.style.display='inline'; Codehighlighter1_253_273_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_253_273_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_253_273_Closed_Text.style.display='none'; Codehighlighter1_253_273_Open_Image.style.display='inline'; Codehighlighter1_253_273_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(value</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;value</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_253_273_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_253_273_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img id=Codehighlighter1_278_313_Open_Image onclick="this.style.display='none'; Codehighlighter1_278_313_Open_Text.style.display='none'; Codehighlighter1_278_313_Closed_Image.style.display='inline'; Codehighlighter1_278_313_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_278_313_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_278_313_Closed_Text.style.display='none'; Codehighlighter1_278_313_Open_Image.style.display='inline'; Codehighlighter1_278_313_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #0000ff">else</span><span id=Codehighlighter1_278_313_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_278_313_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">错误：请输入大于0，小于100的数</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>然后改写定义语句为<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">InputDialog&nbsp;inputDialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;InputDialog(shell,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">标题</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">提示信息</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">默认值</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;MyValidator());</span></div>
二、上边说了MessageDialog不能自动调整大小，那什么能自动调整大小呢？答案是MessageBox.<br>同样继承自Dialog.<br>1,使用方法：MessageBox的使用方法稍微复杂，需要3句
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">MessageBox&nbsp;mb&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;MessageBox(shell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>mb.setMessage(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">提示信息</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>mb.open();</span></div>
2,MessageBox同样可以控制图标和按钮数<br>是通过new的时候加入式样来实现的，例如<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">MessageBox&nbsp;mb&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;MessageBox(shell,SWT._ICON_QUEST</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SWT.YES</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SWT.NO);</span></div>
<p>做过SWT开发的人对这种格式应该不陌生，到处都是。<br><br>图标的种类：<br>SWT.ICON_ERROR<br>SWT.ICON_INFORMATION<br>SWT.ICON_QUESTION<br>SWT.ICON_WARNING</p>
<p>按钮的组合：<br>SWT.OK<br>SWT.OK|SWT.CANCEL<br>SWT.YES|SWT.NO<br>SWT.YES|SWT.NO|SWT.CANCEL<br>SWT.RETRY|SWT.CANCEL<br>SWT.ABORT|SWT.RETRY|SWT.IGNORE<br>仔细看一下就是我们平时经常看到的各种对话框。<br>三、颜色选择对话框<br>不多说，使用方法几乎在swt中遍地都是的用法。<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">ColorDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ColorDialog(shell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>RGB&nbsp;rgb&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.open();<br><img id=Codehighlighter1_85_137_Open_Image onclick="this.style.display='none'; Codehighlighter1_85_137_Open_Text.style.display='none'; Codehighlighter1_85_137_Closed_Image.style.display='inline'; Codehighlighter1_85_137_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_85_137_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_85_137_Closed_Text.style.display='none'; Codehighlighter1_85_137_Open_Image.style.display='inline'; Codehighlighter1_85_137_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(rgb&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_85_137_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_85_137_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Color&nbsp;color&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Color(shell.getDisplay(),rgb);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>注意color使用过后要dispose();<br>四、字体选择对话框<br>有了上边的一些经验其实在有eclipse这种编辑器的帮助下猜着就可以写了<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">FontDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FontDialog(shell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>FontData&nbsp;fontData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.open();<br><img id=Codehighlighter1_99_153_Open_Image onclick="this.style.display='none'; Codehighlighter1_99_153_Open_Text.style.display='none'; Codehighlighter1_99_153_Closed_Image.style.display='inline'; Codehighlighter1_99_153_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_99_153_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_99_153_Closed_Text.style.display='none'; Codehighlighter1_99_153_Open_Image.style.display='inline'; Codehighlighter1_99_153_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(fontDate&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_99_153_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_99_153_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Font&nbsp;font&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Font(shell.getDisplay(),fontData);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>同样在结束后font.dispose();<br>五、打印对话框，同上的使用方法，同上的需要dispose<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">PrintDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;PrintDialog(shell);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>PrintData&nbsp;printData&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.open();<br><img id=Codehighlighter1_104_151_Open_Image onclick="this.style.display='none'; Codehighlighter1_104_151_Open_Text.style.display='none'; Codehighlighter1_104_151_Closed_Image.style.display='inline'; Codehighlighter1_104_151_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_104_151_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_104_151_Closed_Text.style.display='none'; Codehighlighter1_104_151_Open_Image.style.display='inline'; Codehighlighter1_104_151_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(printDate&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">)</span><span id=Codehighlighter1_104_151_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_104_151_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Printer&nbsp;printer&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Printer(printerData);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>六、文件选择对话框：同上<br>1，实现方法<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">FileDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FileDialog(shell,SWT.OPEN);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>dialog.setFilterPath(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">c:\windows</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">设置初始路径</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">String&nbsp;fileName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.open();</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">返回的全路径(路径+文件名)</span></div>
2，如果想选择多个文件，加上SWT.MULTI<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">FileDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FileDialog(shell,SWT.OPEN</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SWT.MULTI);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>String&nbsp;fileName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.open();</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">返回最后一个选择文件的全路径</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">String[]&nbsp;fileNames&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.getFileNames();</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">返回所有选择的文件名，不包括路径</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">String&nbsp;path&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.getFilterPath();返回选择的路径，这个和fileNames配合可以得到所有的文件的全路径</span></div>
3,加入filter<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">FileDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FileDialog(shell,SWT.OPEN</span><span style="COLOR: #000000">|</span><span style="COLOR: #000000">SWT.NULTI);<br><img id=Codehighlighter1_96_225_Open_Image onclick="this.style.display='none'; Codehighlighter1_96_225_Open_Text.style.display='none'; Codehighlighter1_96_225_Closed_Image.style.display='inline'; Codehighlighter1_96_225_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_96_225_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_96_225_Closed_Text.style.display='none'; Codehighlighter1_96_225_Open_Image.style.display='inline'; Codehighlighter1_96_225_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top>dialog.setFilterNames(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;String[]</span><span id=Codehighlighter1_96_225_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_96_225_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">可执行文件(*.exe),</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Excel(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">.xls),</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">所有文件</span><span style="COLOR: #000000">""</span><span style="COLOR: #000000">});</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_175_197_Open_Image onclick="this.style.display='none'; Codehighlighter1_175_197_Open_Text.style.display='none'; Codehighlighter1_175_197_Closed_Image.style.display='inline'; Codehighlighter1_175_197_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_175_197_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_175_197_Closed_Text.style.display='none'; Codehighlighter1_175_197_Open_Image.style.display='inline'; Codehighlighter1_175_197_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">dialog.setFilterExtensions(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;String[]</span><span id=Codehighlighter1_175_197_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_175_197_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.exe</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.xls</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">*.*</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">接受方法同2中的写法，不同就是加入了过滤器。</span></div>
</span>4,保存对话框<br>保存对话框并不提供保存功能，这个需要自己实现，它只提供界面，并得到用户选择的目录和输入的文件名<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">FileDialog&nbsp;dialog&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FileDialog(shell,SWT.SAVE);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top>String&nbsp;fileName&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;dialog.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/134536.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-09 09:39 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/09/134536.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jface的Hello world引出的问题</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/07/134544.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 07 Aug 2007 01:10:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/07/134544.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134544.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/07/134544.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134544.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134544.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Jface的hello World网上到处都是，但简单的Hello world能引出很多需要注意的问题.首先大部分网上的jface helloworld如下:import&nbsp;org.eclipse.jface.window.ApplicationWindow;import&nbsp;org.eclipse.swt.SWT;import&nbsp;org.eclipse.swt.grap...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/07/134544.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/134544.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-07 09:10 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/07/134544.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface listviewer的实现</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/06/134533.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 06 Aug 2007 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/06/134533.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134533.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/06/134533.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134533.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134533.html</trackback:ping><description><![CDATA[前边将过了TableViewer和TreeViewer再来看ListViewer就简单了，操作步骤一样，但更简单。这里只给出使用的代码<br>一、代码，这个实现不同于前边是分开实现（都是public 的类），这里给出的是内部类的实现方式。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.util.ArrayList;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;java.util.List;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.viewers.IStructuredContentProvider;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.viewers.LabelProvider;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.viewers.ListViewer;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.viewers.Viewer;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.SWT;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.graphics.Image;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.layout.FillLayout;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Display;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.Shell;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_464_2475_Open_Image onclick="this.style.display='none'; Codehighlighter1_464_2475_Open_Text.style.display='none'; Codehighlighter1_464_2475_Closed_Image.style.display='inline'; Codehighlighter1_464_2475_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_464_2475_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_464_2475_Closed_Text.style.display='none'; Codehighlighter1_464_2475_Open_Image.style.display='inline'; Codehighlighter1_464_2475_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;TestListViewer&nbsp;</span><span id=Codehighlighter1_464_2475_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_464_2475_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_521_700_Open_Image onclick="this.style.display='none'; Codehighlighter1_521_700_Open_Text.style.display='none'; Codehighlighter1_521_700_Closed_Image.style.display='inline'; Codehighlighter1_521_700_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_521_700_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_521_700_Closed_Text.style.display='none'; Codehighlighter1_521_700_Open_Image.style.display='inline'; Codehighlighter1_521_700_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;ListLabelProvider&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;LabelProvider&nbsp;</span><span id=Codehighlighter1_521_700_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_521_700_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_563_635_Open_Image onclick="this.style.display='none'; Codehighlighter1_563_635_Open_Text.style.display='none'; Codehighlighter1_563_635_Closed_Image.style.display='inline'; Codehighlighter1_563_635_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_563_635_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_563_635_Closed_Text.style.display='none'; Codehighlighter1_563_635_Open_Image.style.display='inline'; Codehighlighter1_563_635_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;String&nbsp;getText(Object&nbsp;element)&nbsp;</span><span id=Codehighlighter1_563_635_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_563_635_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Country&nbsp;country&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(Country)element;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;country.getName();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_677_697_Open_Image onclick="this.style.display='none'; Codehighlighter1_677_697_Open_Text.style.display='none'; Codehighlighter1_677_697_Closed_Image.style.display='inline'; Codehighlighter1_677_697_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_677_697_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_677_697_Closed_Text.style.display='none'; Codehighlighter1_677_697_Open_Image.style.display='inline'; Codehighlighter1_677_697_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Image&nbsp;getImage(Object&nbsp;element)&nbsp;</span><span id=Codehighlighter1_677_697_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_677_697_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_770_1072_Open_Image onclick="this.style.display='none'; Codehighlighter1_770_1072_Open_Text.style.display='none'; Codehighlighter1_770_1072_Closed_Image.style.display='inline'; Codehighlighter1_770_1072_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_770_1072_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_770_1072_Closed_Text.style.display='none'; Codehighlighter1_770_1072_Open_Image.style.display='inline'; Codehighlighter1_770_1072_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;ContentProvider&nbsp;</span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000">&nbsp;IStructuredContentProvider&nbsp;</span><span id=Codehighlighter1_770_1072_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_770_1072_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_823_957_Open_Image onclick="this.style.display='none'; Codehighlighter1_823_957_Open_Text.style.display='none'; Codehighlighter1_823_957_Closed_Image.style.display='inline'; Codehighlighter1_823_957_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_823_957_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_823_957_Closed_Text.style.display='none'; Codehighlighter1_823_957_Open_Image.style.display='inline'; Codehighlighter1_823_957_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Object[]&nbsp;getElements(Object&nbsp;inputElement)&nbsp;</span><span id=Codehighlighter1_823_957_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_823_957_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_860_928_Open_Image onclick="this.style.display='none'; Codehighlighter1_860_928_Open_Text.style.display='none'; Codehighlighter1_860_928_Closed_Image.style.display='inline'; Codehighlighter1_860_928_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_860_928_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_860_928_Closed_Text.style.display='none'; Codehighlighter1_860_928_Open_Image.style.display='inline'; Codehighlighter1_860_928_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;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(inputElement&nbsp;</span><span style="COLOR: #0000ff">instanceof</span><span style="COLOR: #000000">&nbsp;List)</span><span id=Codehighlighter1_860_928_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_860_928_Open_Text><span style="COLOR: #000000">{<br><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;List&nbsp;list&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(List)inputElement;<br><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;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;list.toArray();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Object[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">];<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_983_987_Open_Image onclick="this.style.display='none'; Codehighlighter1_983_987_Open_Text.style.display='none'; Codehighlighter1_983_987_Closed_Image.style.display='inline'; Codehighlighter1_983_987_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_983_987_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_983_987_Closed_Text.style.display='none'; Codehighlighter1_983_987_Open_Image.style.display='inline'; Codehighlighter1_983_987_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;dispose()&nbsp;</span><span id=Codehighlighter1_983_987_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_983_987_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1065_1069_Open_Image onclick="this.style.display='none'; Codehighlighter1_1065_1069_Open_Text.style.display='none'; Codehighlighter1_1065_1069_Closed_Image.style.display='inline'; Codehighlighter1_1065_1069_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1065_1069_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1065_1069_Closed_Text.style.display='none'; Codehighlighter1_1065_1069_Open_Image.style.display='inline'; Codehighlighter1_1065_1069_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;inputChanged(Viewer&nbsp;viewer,&nbsp;Object&nbsp;oldInput,&nbsp;Object&nbsp;newInput)&nbsp;</span><span id=Codehighlighter1_1065_1069_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1065_1069_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1096_1504_Open_Image onclick="this.style.display='none'; Codehighlighter1_1096_1504_Open_Text.style.display='none'; Codehighlighter1_1096_1504_Closed_Image.style.display='inline'; Codehighlighter1_1096_1504_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1096_1504_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1096_1504_Closed_Text.style.display='none'; Codehighlighter1_1096_1504_Open_Image.style.display='inline'; Codehighlighter1_1096_1504_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Country&nbsp;</span><span id=Codehighlighter1_1096_1504_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1096_1504_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;String&nbsp;name;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_1140_1144_Open_Image onclick="this.style.display='none'; Codehighlighter1_1140_1144_Open_Text.style.display='none'; Codehighlighter1_1140_1144_Closed_Image.style.display='inline'; Codehighlighter1_1140_1144_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1140_1144_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1140_1144_Closed_Text.style.display='none'; Codehighlighter1_1140_1144_Open_Image.style.display='inline'; Codehighlighter1_1140_1144_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Country()</span><span id=Codehighlighter1_1140_1144_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1140_1144_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1175_1200_Open_Image onclick="this.style.display='none'; Codehighlighter1_1175_1200_Open_Text.style.display='none'; Codehighlighter1_1175_1200_Closed_Image.style.display='inline'; Codehighlighter1_1175_1200_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1175_1200_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1175_1200_Closed_Text.style.display='none'; Codehighlighter1_1175_1200_Open_Image.style.display='inline'; Codehighlighter1_1175_1200_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;Country(String&nbsp;name)</span><span id=Codehighlighter1_1175_1200_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1175_1200_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;name;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1228_1248_Open_Image onclick="this.style.display='none'; Codehighlighter1_1228_1248_Open_Text.style.display='none'; Codehighlighter1_1228_1248_Closed_Image.style.display='inline'; Codehighlighter1_1228_1248_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1228_1248_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1228_1248_Closed_Text.style.display='none'; Codehighlighter1_1228_1248_Open_Image.style.display='inline'; Codehighlighter1_1228_1248_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;String&nbsp;getName()&nbsp;</span><span id=Codehighlighter1_1228_1248_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1228_1248_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;name;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_1286_1311_Open_Image onclick="this.style.display='none'; Codehighlighter1_1286_1311_Open_Text.style.display='none'; Codehighlighter1_1286_1311_Closed_Image.style.display='inline'; Codehighlighter1_1286_1311_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1286_1311_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1286_1311_Closed_Text.style.display='none'; Codehighlighter1_1286_1311_Open_Image.style.display='inline'; Codehighlighter1_1286_1311_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;setName(String&nbsp;name)&nbsp;</span><span id=Codehighlighter1_1286_1311_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1286_1311_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.name&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;name;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1350_1498_Open_Image onclick="this.style.display='none'; Codehighlighter1_1350_1498_Open_Text.style.display='none'; Codehighlighter1_1350_1498_Closed_Image.style.display='inline'; Codehighlighter1_1350_1498_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1350_1498_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1350_1498_Closed_Text.style.display='none'; Codehighlighter1_1350_1498_Open_Image.style.display='inline'; Codehighlighter1_1350_1498_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;List&nbsp;getCountryList()</span><span id=Codehighlighter1_1350_1498_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1350_1498_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&nbsp;list&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ArrayList();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Country(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">中国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Country(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">美国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Country(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">日本</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;list;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;org.eclipse.swt.widgets.List&nbsp;list;<br><img id=Codehighlighter1_1558_1608_Open_Image onclick="this.style.display='none'; Codehighlighter1_1558_1608_Open_Text.style.display='none'; Codehighlighter1_1558_1608_Closed_Image.style.display='inline'; Codehighlighter1_1558_1608_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1558_1608_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1558_1608_Closed_Text.style.display='none'; Codehighlighter1_1558_1608_Open_Image.style.display='inline'; Codehighlighter1_1558_1608_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1558_1608_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">/**&nbsp;*/</span><span id=Codehighlighter1_1558_1608_Open_Text><span style="COLOR: #008000">/**</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Launch&nbsp;the&nbsp;application<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="COLOR: #808080">@param</span><span style="COLOR: #008000">&nbsp;args<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_1650_2472_Open_Image onclick="this.style.display='none'; Codehighlighter1_1650_2472_Open_Text.style.display='none'; Codehighlighter1_1650_2472_Closed_Image.style.display='inline'; Codehighlighter1_1650_2472_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1650_2472_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1650_2472_Closed_Text.style.display='none'; Codehighlighter1_1650_2472_Open_Image.style.display='inline'; Codehighlighter1_1650_2472_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;</span><span id=Codehighlighter1_1650_2472_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_1650_2472_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Display&nbsp;display&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Display.getDefault();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;Shell&nbsp;shell&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Shell();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setSize(</span><span style="COLOR: #000000">500</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">375</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">SWT&nbsp;Application</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000">&nbsp;ListViewer&nbsp;listViewer&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ListViewer(shell,&nbsp;SWT.BORDER);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.setLabelProvider(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ListLabelProvider());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.setContentProvider(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ContentProvider());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.setInput(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Object());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;listViewer.getList();<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.setBounds(</span><span style="COLOR: #000000">122</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">63</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.setContentProvider(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ContentProvider());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.setLabelProvider(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;ListLabelProvider());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.setInput(Country.getCountryList());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">可以直接添加</span><span style="COLOR: #008000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listViewer.add(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;Country(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">英国</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.setLayout(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;FillLayout());<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.layout();<br><img id=Codehighlighter1_2409_2469_Open_Image onclick="this.style.display='none'; Codehighlighter1_2409_2469_Open_Text.style.display='none'; Codehighlighter1_2409_2469_Closed_Image.style.display='inline'; Codehighlighter1_2409_2469_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_2409_2469_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2409_2469_Closed_Text.style.display='none'; Codehighlighter1_2409_2469_Open_Image.style.display='inline'; Codehighlighter1_2409_2469_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">shell.isDisposed())&nbsp;</span><span id=Codehighlighter1_2409_2469_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_2409_2469_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">display.readAndDispatch())<br><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><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>二、注意代码的注释部分，可以直接添加和移除。 
<img src ="http://www.blogjava.net/dreamstone/aggbug/134533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-06 14:26 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/06/134533.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface  treeViewer的使用</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/05/134512.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Sun, 05 Aug 2007 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/05/134512.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134512.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/05/134512.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134512.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134512.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上边介绍了，tableviewer，这里介绍一下treeViewer，总的流程类似。一、构造一个树形结构的数据出来，这里选择国家、城市、人来构造一个树形结构，代码如下:1，定义一个接口package&nbsp;model;import&nbsp;java.util.List;public&nbsp;interface&nbsp;Itree&nbsp;{&nbsp;&nbsp;&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/05/134512.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/134512.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-05 15:20 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/05/134512.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface tableviewer入门教程四(加入filter ,改变行的颜色)</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/05/134499.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Sun, 05 Aug 2007 05:33:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/05/134499.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134499.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/05/134499.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134499.html</trackback:ping><description><![CDATA[<p>如果我们想根据某一列来过滤记录，如何实现呢？很简单，定义一个过滤器filter。这里只演示定义一个过滤器的情况。<br>现实中你可以定义多个灵活的过滤器，通过替换过滤器来实现各种各样的过滤。<br>一、过滤器代码：<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.viewers.Viewer;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000">&nbsp;org.eclipse.jface.viewers.ViewerFilter;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_132_285_Open_Image onclick="this.style.display='none'; Codehighlighter1_132_285_Open_Text.style.display='none'; Codehighlighter1_132_285_Closed_Image.style.display='inline'; Codehighlighter1_132_285_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_132_285_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_132_285_Closed_Text.style.display='none'; Codehighlighter1_132_285_Open_Image.style.display='inline'; Codehighlighter1_132_285_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;MyFilter&nbsp;</span><span style="COLOR: #0000ff">extends</span><span style="COLOR: #000000">&nbsp;ViewerFilter&nbsp;</span><span id=Codehighlighter1_132_285_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_132_285_Open_Text><span style="COLOR: #000000">{<br><img id=Codehighlighter1_210_283_Open_Image onclick="this.style.display='none'; Codehighlighter1_210_283_Open_Text.style.display='none'; Codehighlighter1_210_283_Closed_Image.style.display='inline'; Codehighlighter1_210_283_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_210_283_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_210_283_Closed_Text.style.display='none'; Codehighlighter1_210_283_Open_Image.style.display='inline'; Codehighlighter1_210_283_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">boolean</span><span style="COLOR: #000000">&nbsp;select(Viewer&nbsp;viewer,&nbsp;Object&nbsp;parentElement,&nbsp;Object&nbsp;element)&nbsp;</span><span id=Codehighlighter1_210_283_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"></span><span id=Codehighlighter1_210_283_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;People&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(People)&nbsp;element;<br><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;p.getName().startsWith(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">张1</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
然后在testTableViewer的shell.open前加入这个过滤器<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">tableViewer.addFilter(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;MyFilter());</span></div>
好了，看一下效果<br>二、如果我们想凸显某一条记录，想改变一下它的颜色，如果实现呢，简单，只要几句话就可以了。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #000000">Color&nbsp;color&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;Display.getDefault().getSystemColor(SWT.COLOR_RED);<br>table.getItems()[table.getItemCount()</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">].setBackground(color);<br>table.redraw();</span></div>
<br>三、这里提一下，使用tabeViewer.setUseHashlookup(true)可以在tableviewer内部为数据记录和tableItem之间的映射创建一个hash表，这样可以加快tableItem的和记录间的查找速度，注意，这条语句必须在setInput之前加入才有效。<br>好了，到此tableviewer的基本的东西介绍的差不多了 <br>source下载：<a href="http://www.blogjava.net/Files/dreamstone/jface-4.rar">http://www.blogjava.net/Files/dreamstone/jface-4.rar</a><br>四：在现实的开发中，我们更多的是喜欢把一些简单的类用匿名类或者内部类的方式来实现。像之前例子中每个都单独一个类的情况并不多。<br>下边是和前边的source效果等同的source，不过是使用了匿名类和内部类。<br><a href="http://www.blogjava.net/Files/dreamstone/jface-5.rar">http://www.blogjava.net/Files/dreamstone/jface-5.rar</a><br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/134499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-05 13:33 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/05/134499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface tableViewer入门教程三(加入在表格上直接编辑数据)</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/05/134498.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Sun, 05 Aug 2007 05:21:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/05/134498.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134498.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/05/134498.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134498.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134498.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 前边实现了一个表格的基本功能，但这并不够好，能否为表格实现一些更好的功能呢？答案是肯定的。下边我们来加入直接编辑的功能。一、要实现这个功能必须提供一个实现ICellModifier的类。内容如下import&nbsp;org.eclipse.jface.viewers.ICellModifier;import&nbsp;org.eclipse.jface.viewers.TableViewer...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/05/134498.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/134498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-05 13:21 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/05/134498.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface tableViewer入门教程二（让TableViewer按照列排序)</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/05/134496.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Sun, 05 Aug 2007 05:05:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/05/134496.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134496.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/05/134496.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134496.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134496.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 有一个功能是我们常使用的，就是在列的头上点击一下，整个表的记录按照这个列来排序，再点击一下按照这个列的反序来排序。那JFace是如何实现这个功能的呢？在JFace中是通过一个排序器来实现的，就是ViewerSorter下边写出详细的步骤一、定义一个sorter继承自ViewerSorterimport&nbsp;java.util.Date;import&nbsp;org.eclipse.jf...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/05/134496.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/134496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-05 13:05 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/05/134496.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Swt/Jface tableViewer入门教程一(显示tableViewer)</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/05/134495.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Sun, 05 Aug 2007 04:48:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/05/134495.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134495.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/05/134495.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134495.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134495.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1，简单显示,表格的式样见注释中的内容import&nbsp;org.eclipse.jface.viewers.TableViewer;import&nbsp;org.eclipse.swt.SWT;import&nbsp;org.eclipse.swt.widgets.Display;import&nbsp;org.eclipse.swt.widgets.Shell;import&nbsp...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/05/134495.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/134495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-05 12:48 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/05/134495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swt入门 --常用组件的使用</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/02/134074.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 02 Aug 2007 09:53:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/02/134074.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/134074.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/02/134074.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/134074.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/134074.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: swt的常用组件button ,text ,combo,list ,还有一些容器类composite ,group，这里选择几个，列写简单的用法不写解释了，因为代码很简单，而且代码上的注释足以说明.1,combo&nbsp; 和textpackage&nbsp;com.test;import&nbsp;org.eclipse.swt.SWT;import&nbsp;org.eclipse.sw...&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/08/02/134074.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/134074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-02 17:53 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/02/134074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习gef-whole-upload初期易犯的两个错误</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/02/133955.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 02 Aug 2007 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/02/133955.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/133955.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/02/133955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/133955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/133955.html</trackback:ping><description><![CDATA[<p>按照gef-whole-upload来学习，过程中会遇到这么几个错误:<br>错误一：<br>java.lang.RuntimeException: Application "gef.tutroial.step.application" could not be found in the registry. The applications available are: &lt;NONE&gt;.<br>解决方法：<br>核对plugin.xml中的第一段中的路径，名字是否都是正确的。是否都对应自己的包名<br>&nbsp;&lt;extension<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="Application"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point="org.eclipse.core.runtime.applications"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;application&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;run<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="gef.tutorial.step.rcp.Application"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/run&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/application&gt;<br>&nbsp;&nbsp; &lt;/extension&gt;<br>如果因为错误包名更改后还是报这个错误。关掉eclipse重新启动</p>
<p>错误二：<br>按照教程的操作，结果出现错误<br>org.eclipse.ui.PartInitException: Unable to open editor, unknown editor ID:<br>检查你的plugin.xml中的这一段<br>&lt;extension<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; point="org.eclipse.ui.editors"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;editor<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="gef.tutorial.step.ui.DiagramEditor"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default="false"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; icon="icons/alt_about.gif"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="gef.tutorial.step.ui.DiagramEditor"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="Diagram Editor"/&gt;<br>&nbsp;&nbsp; &lt;/extension&gt;<br>&nbsp;&nbsp; 是否有icon=""，我开始以为没有icon没什么所以没配置，结果一直出错，配上就好了。感觉这个做的真<br>&nbsp; 让人郁闷，还必须有icon</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/133955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-02 11:18 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/02/133955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>gef-whole-upload 代码 (更全的部分)</title><link>http://www.blogjava.net/dreamstone/archive/2007/08/02/133952.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 02 Aug 2007 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/08/02/133952.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/133952.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/08/02/133952.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/133952.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/133952.html</trackback:ping><description><![CDATA[最近看了gef-whole-upload这个电子书，写的很好，推荐有兴趣的人看一下。同时把自己在学习过程中写的source放上来，以便参考吧。基本是按照原书来的。有很少地方自己发挥一下。<br>另外网上看到过一个source，那个到划线部分就没有了，我这个基本是全文的。<br>另外说明一下：因为版本的原因，部分功能可能用不了，原教程是针对eclipse的低版本的。但主要功能是可以的。我是在eclipse 3.2.2上开发的。正在考虑如何把对应eclipse3.3如果有结果同样会继续发出来。<br>source下载地址：<a href="http://www.blogjava.net/Files/dreamstone/gef.tutorial.step.rar">http://www.blogjava.net/Files/dreamstone/gef.tutorial.step.rar</a> 
<img src ="http://www.blogjava.net/dreamstone/aggbug/133952.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-08-02 11:11 <a href="http://www.blogjava.net/dreamstone/archive/2007/08/02/133952.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse3.3的一些新的特性</title><link>http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 27 Jul 2007 10:08:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/132865.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/132865.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/132865.html</trackback:ping><description><![CDATA[eclipse3.3相对3.2有很大改动，不过以一个使用者的身份罗列一些新的特性。<br>1,ctrl + shift+ o 在代码中有错误的时候也能执行了<br>2,显示个数&nbsp;&nbsp; 显示tab数变多了<br>3,最大最小化效果好了，而且多了直接能点开一些窗口的按钮。注意边上<br>4,执行速度变快了，启动速度，关闭速度都快了很多<br>5,导入工程的时候选定一个文件夹，自动寻找子文件夹中的所有工程，并且过滤掉已经导入的工程。<br>6,新建工程的时候自动建处src和bin，虽然3.2的时候也可以自己手动配置实现，但3.3时默认实现，更人性化一<br>些。<br>7,据说占用内存少了<br>用了一天看到就这些，欢迎补充. 
<img src ="http://www.blogjava.net/dreamstone/aggbug/132865.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-07-27 18:08 <a href="http://www.blogjava.net/dreamstone/archive/2007/07/27/132865.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>eclipse rcp 开发实例 (源码下载)</title><link>http://www.blogjava.net/dreamstone/archive/2007/05/18/118399.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Fri, 18 May 2007 08:05:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/05/18/118399.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/118399.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/05/18/118399.html#Feedback</comments><slash:comments>37</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/118399.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/118399.html</trackback:ping><description><![CDATA[前一段时间学习eclipse rcp开发写的一个学习用的工程。涉及了我当时学到的一些方面。<br>当时想找一个可以用来学习的简单的源代码真难，有的都是复杂的。<br>这里提供一个简单的工程。设计初学者接触的各种问题。有时通一件事情使用了两种方式来实现。<br>使用了treeview&nbsp; ,tableview&nbsp; <br>tableview的排序<br>加入了javamail<br>使用了jobs后台进程<br>加入了log4j<br>国际化<br>设置了部署工程<br>右键、菜单、双击等事件<br><a href="http://www.blogjava.net/Files/dreamstone/rcp.rar">source下载</a><br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/118399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-05-18 16:05 <a href="http://www.blogjava.net/dreamstone/archive/2007/05/18/118399.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习eclipse插件开发资源全收集(plugin)</title><link>http://www.blogjava.net/dreamstone/archive/2007/05/08/116016.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 08 May 2007 10:07:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/05/08/116016.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/116016.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/05/08/116016.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/116016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/116016.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: eclipse 插件开发 资源收集 rcp plugin &nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/05/08/116016.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/116016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-05-08 18:07 <a href="http://www.blogjava.net/dreamstone/archive/2007/05/08/116016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>通过Eclipse插件Bytecode Outline方便了解Java字节码</title><link>http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 22 Feb 2007 10:44:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/100358.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/100358.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/100358.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse, 编译, 反编译, 字节码, 插件 ,Bytecode Outline,asm&nbsp;&nbsp;<a href='http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html'>阅读全文</a><img src ="http://www.blogjava.net/dreamstone/aggbug/100358.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-02-22 18:44 <a href="http://www.blogjava.net/dreamstone/archive/2007/02/22/100358.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse中最常用的热键</title><link>http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Thu, 08 Feb 2007 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/98706.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/98706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/98706.html</trackback:ping><description><![CDATA[<p>Eclipse中最常用的热键:</p>
<p>1,Ctrl+D &nbsp;&nbsp;&nbsp;&nbsp;删除选中的几行<br>2,Alt+上下箭头 &nbsp;&nbsp;&nbsp;移动选中的代码块<br>3,Alt+左右箭头&nbsp;&nbsp;&nbsp;回退 前进<br>4,Alt+Shift+上下箭头 &nbsp;&nbsp;复制选中的代码块<br>5,sysout+Ctrl space&nbsp;&nbsp;&nbsp;&nbsp; 生成System.out.println();<br>6,main + Ctrl space&nbsp;&nbsp;&nbsp;&nbsp; 生成最简单的main函数<br>7,Ctrl+Shift+X&nbsp;&nbsp;&nbsp;切换成大写<br>8,Ctrl+Shift+Y&nbsp;&nbsp;&nbsp;切换成小写<br>9,Ctrl+Z&nbsp;&nbsp;&nbsp;&nbsp;取消undo<br>10,Ctrl+Y&nbsp;&nbsp;&nbsp;&nbsp;redo<br>11,Ctrl+S&nbsp;&nbsp;&nbsp;&nbsp;保存<br>12,Tab&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;块缩进<br>13,Shift+Tab&nbsp;&nbsp;&nbsp;反向块缩进<br>14,Ctrl+Shif+F&nbsp;&nbsp;&nbsp;格式化代码<br>15,Ctrl+O&nbsp;&nbsp;&nbsp;&nbsp;显示成员方法 ,成员对象<br>16,Ctrl+Shift+I &nbsp;&nbsp;调试的时候显示对象的值<br>17,Ctrl+M&nbsp;&nbsp;&nbsp;&nbsp;全屏<br>18,Ctrl+N&nbsp;&nbsp;&nbsp;&nbsp;新建<br>19,Ctrl+L&nbsp;&nbsp;&nbsp;&nbsp;进入到第N行<br>20,Ctrl+/&nbsp;&nbsp;&nbsp;&nbsp;注释打开代码<br>21,Ctrl+Shift+/&nbsp;&nbsp;&nbsp;块注释<br>22,Ctrl+Shift+\&nbsp;&nbsp;&nbsp;块注释取消<br>23,Ctrl+1&nbsp;&nbsp;&nbsp;&nbsp;纠正代码<br>24,F3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;显示继承树<br>25,Ctrl+F&nbsp;&nbsp;&nbsp;&nbsp;查找替换<br>26,Ctrl+H&nbsp;&nbsp;&nbsp;&nbsp;更大范围的查找替换<br>27,F5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step into<br>28,F6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step over<br>29,F7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step return<br>30,F8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resume</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/98706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2007-02-08 11:41 <a href="http://www.blogjava.net/dreamstone/archive/2007/02/08/98706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp 系列八 中更改状态条的信息</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/07/79623.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 07 Nov 2006 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/07/79623.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79623.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/07/79623.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79623.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79623.html</trackback:ping><description><![CDATA[Eclipse Rcp中更改状态条的信息<br>private void showStatusMessage(String msg) {<br>&nbsp;&nbsp;WorkbenchWindow workbenchWindow = (WorkbenchWindow) PlatformUI<br>&nbsp;&nbsp;&nbsp;&nbsp;.getWorkbench().getActiveWorkbenchWindow();<br>&nbsp;&nbsp;&nbsp;workbenchWindow.setStatus(msg);<br>&nbsp;} 
<img src ="http://www.blogjava.net/dreamstone/aggbug/79623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-07 15:35 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/07/79623.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp系列 七 多线程</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/07/79621.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 07 Nov 2006 07:32:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/07/79621.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79621.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/07/79621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79621.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79621.html</trackback:ping><description><![CDATA[Eclipse中多线程的实现，类似这样<br>Job job = new Job("job1") {<br>&nbsp;protected IStatus run(IProgressMonitor monitor) {<br>&nbsp;&nbsp;//-----你自定义的东西<br>&nbsp;&nbsp;Job1 job1 = new Job1();<br>&nbsp;&nbsp;job1.run();<br>&nbsp;&nbsp;//-----------------<br>&nbsp;&nbsp;return Status.OK_STATUS;<br>&nbsp;}<br>};<br>job.setPriority(Job.SHORT);<br>job.schedule();&nbsp; //start as soon as possible 
<img src ="http://www.blogjava.net/dreamstone/aggbug/79621.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-07 15:32 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/07/79621.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp系列 六  TreeView</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/07/79619.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 07 Nov 2006 07:23:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/07/79619.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79619.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/07/79619.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79619.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79619.html</trackback:ping><description><![CDATA[<p>treeView的使用和TableView差不多，不同的是ContentProvider和LabelProvider的实现接口不同了。下边是个例子，看一下相信你就，明白了<br>&nbsp;class KindLabelProvider extends LabelProvider {<br>&nbsp;&nbsp;public String getText(Object obj) {<br>&nbsp;&nbsp;&nbsp;if (obj instanceof Kind) {<br>&nbsp;&nbsp;&nbsp;&nbsp;return obj.toString();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public Image getImage(Object obj) {<br>&nbsp;&nbsp;&nbsp;// String imageKey = ISharedImages.IMG_OBJ_ELEMENT;<br>&nbsp;&nbsp;&nbsp;if (obj instanceof Kind) {<br>&nbsp;&nbsp;&nbsp;&nbsp;String imageKey = ISharedImages.IMG_OBJ_FOLDER;<br>&nbsp;&nbsp;&nbsp;&nbsp;PlatformUI.getWorkbench().getSharedImages().getImage(imageKey);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}<br>&nbsp;}</p>
<p>&nbsp;class KindContentProvider implements IStructuredContentProvider,<br>&nbsp;&nbsp;&nbsp;ITreeContentProvider {</p>
<p>&nbsp;&nbsp;public Object[] getElements(Object parent) {<br>&nbsp;&nbsp;&nbsp;if(parent instanceof Kind){<br>&nbsp;&nbsp;&nbsp;&nbsp;return getChildren(parent);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public Object getParent(Object child) {<br>&nbsp;&nbsp;&nbsp;if (child instanceof Node) {<br>&nbsp;&nbsp;&nbsp;&nbsp;return ((Node) child).getParent();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public Object[] getChildren(Object parent) {<br>&nbsp;&nbsp;&nbsp;if (parent instanceof Kind) {<br>&nbsp;&nbsp;&nbsp;&nbsp;ArrayList children = ((Kind) parent).getChildren();<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;return children.toArray(new Node[children.size()]);<br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return new Object[0];<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public boolean hasChildren(Object parent) {<br>&nbsp;&nbsp;&nbsp;if (parent instanceof Kind)<br>&nbsp;&nbsp;&nbsp;&nbsp;return ((Kind) parent).hasChildren();<br>&nbsp;&nbsp;&nbsp;return false;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public void dispose() {<br>&nbsp;&nbsp;&nbsp;// TODO Auto-generated method stub</p>
<p>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {<br>&nbsp;&nbsp;&nbsp;// TODO Auto-generated method stub</p>
<p>&nbsp;&nbsp;}<br>&nbsp;}</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/79619.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-07 15:23 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/07/79619.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp系列 5 开发过程中遇到的小问题合集</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/07/79618.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Tue, 07 Nov 2006 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/07/79618.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79618.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/07/79618.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79618.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79618.html</trackback:ping><description><![CDATA[这些小问题会影响开发，查找这些问题还是比较耗时间的，这里把我在学习过程中遇到的问题，找到答案中比较好的转出来。<br>1，使用第三方控件，在Rcp开发中使用第三方控件(lib)的方式和一般的开发不太一样，方式如下链接<br><a href="http://www.javazy.com/contentex/200644225825.shtml">http://www.javazy.com/contentex/200644225825.shtml</a><br>2，使用属性文件，对於属性文件的读取，也稍有不同，使用方法（转自<a href="http://blog.csdn.net/explorering/archive/2006/10/11/1330709.aspx">http://blog.csdn.net/explorering/archive/2006/10/11/1330709.aspx</a>）<br><br><span class=duanluojianju><span class=style78><font size=2>1。使用java.util.Properties类的load()方法&nbsp;<br>示例：&nbsp;<br>InputStream&nbsp;in&nbsp;=&nbsp;lnew&nbsp;BufferedInputStream(new&nbsp;FileInputStream(name));&nbsp;<br>Properties&nbsp;p&nbsp;=&nbsp;new&nbsp;Properties();&nbsp;<br>p.load(in);&nbsp;<br><br>2。使用java.util.ResourceBundle类的getBundle()方法&nbsp;<br>示例：<br>ResourceBundle&nbsp;rb&nbsp;=&nbsp;ResourceBundle.getBundle(name,&nbsp;Locale.getDefault());&nbsp;<br><br>3。使用java.util.PropertyResourceBundle类的构造函数&nbsp;<br>示例：&nbsp;<br>InputStream&nbsp;in&nbsp;=&nbsp;new&nbsp;BufferedInputStream(new&nbsp;FileInputStream(name));&nbsp;<br>ResourceBundle&nbsp;rb&nbsp;=&nbsp;new&nbsp;PropertyResourceBundle(in);&nbsp;<br><br>4。使用class变量的getResourceAsStream()方法&nbsp;<br>示例：&nbsp;<br>InputStream&nbsp;in&nbsp;=&nbsp;JProperties.class.getResourceAsStream(name);&nbsp;<br>Properties&nbsp;p&nbsp;=&nbsp;new&nbsp;Properties();&nbsp;<br>p.load(in);&nbsp;<br><br>5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法&nbsp;<br>示例：&nbsp;<br>InputStream&nbsp;in&nbsp;=&nbsp;JProperties.class.getClassLoader().getResourceAsStream(name);&nbsp;<br>Properties&nbsp;p&nbsp;=&nbsp;new&nbsp;Properties();&nbsp;<br>p.load(in);&nbsp;<br><br>6。使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法&nbsp;<br>示例：&nbsp;<br>InputStream&nbsp;in&nbsp;=&nbsp;ClassLoader.getSystemResourceAsStream(name);&nbsp;<br>Properties&nbsp;p&nbsp;=&nbsp;new&nbsp;Properties();&nbsp;<br>p.load(in);&nbsp;<br><br>补充&nbsp;<br><br>Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法&nbsp;<br>示例：<br>InputStream&nbsp;in&nbsp;=&nbsp;context.getResourceAsStream(path);&nbsp;<br>Properties&nbsp;p&nbsp;=&nbsp;new&nbsp;Properties();&nbsp;<br>p.load(in);&nbsp;<br></font></span></span><br>3，国际化，在国际化界面的同时，记得国际化plug-in，国际话的方法 不同于程序中的Message.getString()方法，是使用的%,这样<br>&nbsp;&lt;view<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="com.niis.myprice.views.KindView"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id="com.niis.myprice.views.KindView"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name="%plugin.kindmanager"/&gt;<br>然後对应各种语言建立一个plugin.properties，记着发布的时候不要忘记加入这些配制文件。<br><br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/79618.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-07 15:20 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/07/79618.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp系列 四  弹出提示窗口</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/06/79400.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 06 Nov 2006 06:43:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/06/79400.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79400.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/06/79400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79400.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79400.html</trackback:ping><description><![CDATA[如何实现各式各样的提示窗口呢，SWT提供了一个类<br>MessageDialog<br>只有一个确定<br>MessageDialog.openInformation(shell, "title", "message"); <br>有是/否<br>MessageDialog.openConfirm(shell, "title","message");<br>有是/否/取消<br>MessageDialog dialog = new MessageDialog(shell, "title", null, "message",<br>&nbsp;&nbsp;MessageDialog.QUESTION, new String[] {IDialogConstants.YES_LABEL,<br>&nbsp;&nbsp;IDialogConstants.NO_LABEL,IDialogConstants.CANCEL_LABEL }, 0);<br>dialog.open();<br>还可以加入更多的选择项，只需要在数组中加入更多的内容<br>那如何取得点击了哪个按钮呢，两种方法<br>直接int result = dialog.open();<br>或者int result = dialog.getReturnCode();<br>返回的result的值就是被选中按钮在数组中的index<br>
<img src ="http://www.blogjava.net/dreamstone/aggbug/79400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-06 14:43 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/06/79400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp系列三  进一步了解Viewer</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/06/79398.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 06 Nov 2006 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/06/79398.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79398.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/06/79398.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79398.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79398.html</trackback:ping><description><![CDATA[<p>好在二的基础上，继续，这个时候我们须要增加一个Viewer.在这里我须要说一下，在eclipse的开发中用到的很多<br>的是Viewer(视图)这个概念，而不像Vb等开发中经常用到的window(窗口)，并不是说Rcp中没有窗口，而是使用<br>频率较低，所以分别说一下如何添加窗口和Viewer</p>
<p>一，添加一个对话框窗口：添加一个类如下，然後在须要显视的地方调用一下open()方法<br>不一定非要继承自Dialog,这里为了渐少一些代码,而且我使用中也多继承自Dialog<br>package hellorcp;</p>
<p>import org.eclipse.swt.SWT;<br>import org.eclipse.swt.widgets.Dialog;<br>import org.eclipse.swt.widgets.Display;<br>import org.eclipse.swt.widgets.Shell;</p>
<p>public class HelloDialog extends Dialog {</p>
<p>&nbsp;protected Object result;</p>
<p>&nbsp;protected Shell shell;</p>
<p>&nbsp;public HelloDialog(Shell parent, int style) {<br>&nbsp;&nbsp;super(parent, style);<br>&nbsp;}</p>
<p>&nbsp;public HelloDialog(Shell parent) {<br>&nbsp;&nbsp;this(parent, SWT.NONE);<br>&nbsp;}<br>&nbsp;public Object open() {<br>&nbsp;&nbsp;createContents();<br>&nbsp;&nbsp;shell.open();<br>&nbsp;&nbsp;shell.layout();<br>&nbsp;&nbsp;Display display = getParent().getDisplay();<br>&nbsp;&nbsp;while (!shell.isDisposed()) {<br>&nbsp;&nbsp;&nbsp;if (!display.readAndDispatch())<br>&nbsp;&nbsp;&nbsp;&nbsp;display.sleep();<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;return result;<br>&nbsp;}</p>
<p>&nbsp;protected void createContents() {<br>&nbsp;&nbsp;shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);<br>&nbsp;&nbsp;shell.setSize(500, 375);<br>&nbsp;&nbsp;shell.setText("SWT Dialog");<br>&nbsp;&nbsp;//<br>&nbsp;}</p>
<p>}</p>
<p>二，添加一个viewer，首先建立一个viewer,下边是Designer（一个很好用的插件）自动生成的一个viewer，<br>也就是一个Viewer的大概结构<br>package hellorcp;</p>
<p>import org.eclipse.jface.action.IMenuManager;<br>import org.eclipse.jface.action.IToolBarManager;<br>import org.eclipse.swt.SWT;<br>import org.eclipse.swt.widgets.Composite;<br>import org.eclipse.ui.part.ViewPart;</p>
<p>public class HelloView extends ViewPart {</p>
<p>&nbsp;public static final String ID = "hellorcp.HelloView"; //$NON-NLS-1$</p>
<p>&nbsp;public void createPartControl(Composite parent) {<br>&nbsp;&nbsp;Composite container = new Composite(parent, SWT.NONE);<br>&nbsp;&nbsp;//<br>&nbsp;&nbsp;createActions();<br>&nbsp;&nbsp;initializeToolBar();<br>&nbsp;&nbsp;initializeMenu();<br>&nbsp;}</p>
<p>&nbsp;private void createActions() {<br>&nbsp;&nbsp;// Create the actions<br>&nbsp;}<br>&nbsp;private void initializeToolBar() {<br>&nbsp;&nbsp;IToolBarManager toolbarManager = getViewSite().getActionBars()<br>&nbsp;&nbsp;&nbsp;&nbsp;.getToolBarManager();<br>&nbsp;}</p>
<p>&nbsp;private void initializeMenu() {<br>&nbsp;&nbsp;IMenuManager menuManager = getViewSite().getActionBars()<br>&nbsp;&nbsp;&nbsp;&nbsp;.getMenuManager();<br>&nbsp;}</p>
<p>&nbsp;public void setFocus() {<br>&nbsp;&nbsp;// Set the focus<br>&nbsp;}</p>
<p>}<br>显视这个viewer,每个viewer须要加载到perspective上才能显视，所以在Perspective.java中加入如下代码<br>public void createInitialLayout(IPageLayout layout) {<br>&nbsp;layout.setEditorAreaVisible(false);//不显视edit窗口<br>&nbsp;String editorArea = layout.getEditorArea();<br>&nbsp;//下边两句的不同是，一个显视的是单页窗口，一个显视的是多页窗口<br>&nbsp;layout.addStandaloneView(HelloViewer.ID,false, IPageLayout.LEFT, 0.25f, editorArea);<br>&nbsp;layout.addView(HelloViewer.ID, IPageLayout.RIGHT, 0.75f, editorArea);<br>｝</p>
<p>三，在viewer或者dialog上添加控件，如果装有Designer可以直接拖放，如果没有编程实现也可以<br>大部份添加到下边这样的函数中<br>viewer:<br>public void createPartControl(Composite parent) {<br>&nbsp;&nbsp;Composite container = new Composite(parent, SWT.NONE);<br>&nbsp;&nbsp;//添加一个button<br>&nbsp;&nbsp;final Button delBtn = new Button(container, SWT.NONE);<br>&nbsp;&nbsp;delBtn.setText("删除"); <br>&nbsp;&nbsp;delBtn.setBounds(10, 83, 44, 22);<br>&nbsp;&nbsp;addListener2DelBtn(delBtn);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;createActions();<br>&nbsp;&nbsp;initializeToolBar();<br>&nbsp;&nbsp;initializeMenu();<br>}<br>dialog:<br>protected void createContents() {<br>&nbsp;&nbsp;shell = new Shell(getParent(), SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);<br>&nbsp;&nbsp;shell.setSize(500, 375);<br>&nbsp;&nbsp;shell.setText("SWT Dialog");<br>}&nbsp;</p>
<p>四，响应事件,SWT的事件响应和Swing是一样的，添加listener<br>delBtn.addSelectionListener(new SelectionAdapter() {<br>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;//加入你响应事件要做的事情<br>&nbsp;&nbsp;&nbsp;}<br>});</p>
<p>五，布局<br>布局方面swt没有什么新的地方，发个简单使用布局的例子，参考吧.另外布局还有很多搭配，但不是本文的<br>重点，暂时带过<br>import org.eclipse.swt.SWT;<br>import org.eclipse.swt.events.SelectionEvent;<br>import org.eclipse.swt.events.SelectionListener;<br>import org.eclipse.swt.graphics.Font;<br>import org.eclipse.swt.graphics.Point;<br>import org.eclipse.swt.graphics.Rectangle;<br>import org.eclipse.swt.layout.FormAttachment;<br>import org.eclipse.swt.layout.FormData;<br>import org.eclipse.swt.layout.FormLayout;<br>import org.eclipse.swt.widgets.Button;<br>import org.eclipse.swt.widgets.Display;<br>import org.eclipse.swt.widgets.Shell;<br>import org.eclipse.swt.widgets.Table;<br>import org.eclipse.swt.widgets.TableColumn;<br>import org.eclipse.swt.widgets.TableItem;</p>
<p>public class TableDemo {</p>
<p>&nbsp; /**<br>&nbsp; * @param args<br>&nbsp; */<br>&nbsp; public static void main(String[] args) {<br>&nbsp;&nbsp;&nbsp; Display&nbsp;&nbsp; dispMain = new Display ();<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; final Shell shellMain = new Shell (dispMain, SWT.TITLE | SWT.MIN | SWT.BORDER);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; shellMain.setText("Table Demo");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; FormLayout formLayout = new FormLayout();<br>&nbsp;&nbsp;&nbsp; formLayout.marginLeft = 10;<br>&nbsp;&nbsp;&nbsp; formLayout.marginRight = 10;<br>&nbsp;&nbsp;&nbsp; formLayout.marginTop = 10;<br>&nbsp;&nbsp;&nbsp; formLayout.marginBottom = 10;<br>&nbsp;&nbsp;&nbsp; formLayout.spacing = 10;<br>&nbsp;&nbsp;&nbsp; shellMain.setLayout(formLayout);</p>
<p>&nbsp;&nbsp;&nbsp; shellMain.setSize(800, 600);<br>&nbsp;&nbsp;&nbsp; Point size = shellMain.getSize();<br>&nbsp;&nbsp;&nbsp; Rectangle rect = dispMain.getBounds();<br>&nbsp;&nbsp;&nbsp; shellMain.setLocation(rect.x + (rect.width-size.x)/2, rect.y + (rect.height-size.y)/2);</p>
<p>&nbsp;&nbsp;&nbsp; Table demoTable = (Table)createContents(shellMain);&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; FormData formData = new FormData();<br>&nbsp;&nbsp;&nbsp; formData.left = new FormAttachment(0, 0);<br>&nbsp;&nbsp;&nbsp; formData.top = new FormAttachment(0, 0);<br>&nbsp;&nbsp;&nbsp; formData.right = new FormAttachment(100, 0);<br>&nbsp;&nbsp;&nbsp; formData.bottom = new FormAttachment(100, -34);<br>&nbsp;&nbsp;&nbsp; demoTable.setLayoutData(formData);</p>
<p>&nbsp;&nbsp;&nbsp; Button btnClose = new Button(shellMain, SWT.PUSH | SWT.FLAT);<br>&nbsp;&nbsp;&nbsp; btnClose.setText("close");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; formData = new FormData();<br>&nbsp;&nbsp;&nbsp; formData.right = new FormAttachment(100, 0);<br>&nbsp;&nbsp;&nbsp; formData.top = new FormAttachment(demoTable, 0);<br>&nbsp;&nbsp;&nbsp; formData.width = 100;<br>&nbsp;&nbsp;&nbsp; formData.bottom = new FormAttachment(100, 0);<br>&nbsp;&nbsp;&nbsp; btnClose.setLayoutData(formData);<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; btnClose.addSelectionListener(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new SelectionListener() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void widgetDefaultSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.widgetSelected(e);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; shellMain.close();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; );<br>&nbsp;&nbsp;&nbsp; shellMain.open ();<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; while (!shellMain.isDisposed ()) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!dispMain.readAndDispatch ()) { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dispMain.sleep ();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; dispMain.dispose ();<br>&nbsp;&nbsp;&nbsp; dispMain = null;<br>&nbsp; }</p>
<p>&nbsp; /**<br>&nbsp; * <br>&nbsp; * @param shellMain<br>&nbsp; * @return<br>&nbsp; */<br>&nbsp; private static Table createContents(Shell shellMain) {<br>&nbsp;&nbsp;&nbsp; Table table = new Table(shellMain, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);<br>&nbsp;&nbsp;&nbsp; table.setHeaderVisible(true);<br>&nbsp;&nbsp;&nbsp; table.setLinesVisible(true);<br>&nbsp;&nbsp;&nbsp; table.setFont(new Font(shellMain.getDisplay(), "Arial", 11, SWT.BOLD));<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; TableColumn colNumber = new TableColumn(table, SWT.NONE);<br>&nbsp;&nbsp;&nbsp; TableColumn colMedName = new TableColumn(table, SWT.CENTER);<br>&nbsp;&nbsp;&nbsp; TableColumn colPrice = new TableColumn(table, SWT.CENTER);<br>&nbsp;&nbsp;&nbsp; TableColumn colUnit = new TableColumn(table, SWT.CENTER);<br>&nbsp;&nbsp;&nbsp; TableColumn colCount = new TableColumn(table, SWT.CENTER);<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; colNumber.setWidth(25);<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; colMedName.setWidth(150);<br>&nbsp;&nbsp;&nbsp; colMedName.setText("Medicine Name");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; colPrice.setWidth(150);<br>&nbsp;&nbsp;&nbsp; colPrice.setText("Medicine Price");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; colUnit.setWidth(150);<br>&nbsp;&nbsp;&nbsp; colUnit.setText("Medicine Unit");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; colCount.setWidth(150);<br>&nbsp;&nbsp;&nbsp; colCount.setText("Medicine Count");<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; for(int i=0; i&lt;10; i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TableItem item = new TableItem(table, SWT.NONE);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; item.setText(new String[]{i+1+"","4/2","4/3","4/4","4/5","4/6","4/7","4/8","4/9"});<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; return table;<br>&nbsp; }<br>}<br>五，加入 右键 ，双击<br>加入两个listener<br>//右键<br>private void hookContextMenu() {<br>&nbsp;&nbsp;MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$<br>&nbsp;&nbsp;menuMgr.setRemoveAllWhenShown(true);<br>&nbsp;&nbsp;menuMgr.addMenuListener(new IMenuListener() {<br>&nbsp;&nbsp;&nbsp;public void menuAboutToShow(IMenuManager manager) {<br>&nbsp;&nbsp;&nbsp;&nbsp;HelloView.this.fillContextMenu(manager);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>&nbsp;&nbsp;Menu menu = menuMgr.createContextMenu(viewer.getControl());<br>&nbsp;&nbsp;viewer.getControl().setMenu(menu);<br>&nbsp;&nbsp;getSite().registerContextMenu(menuMgr, viewer);<br>}<br>private void fillContextMenu(IMenuManager manager) {<br>&nbsp;&nbsp;manager.add(addAction);<br>&nbsp;&nbsp;manager.add(modifyAction);<br>&nbsp;&nbsp;manager.add(deleteAction);<br>&nbsp;&nbsp;manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));<br>}<br>//双击<br>private void hookDoubleClickAction() {<br>&nbsp;&nbsp;viewer.addDoubleClickListener(new IDoubleClickListener() {<br>&nbsp;&nbsp;&nbsp;public void doubleClick(DoubleClickEvent event) {<br>&nbsp;&nbsp;&nbsp;&nbsp;//doubleClickAction.run();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>}</p>
<p>六，使用TableViewer<br>Jface中封装了talbeViewer TreeViewer等控件，能简单的实现很多功能，首先说说TableView<br>//SWT.FULL_SELECTION 可以选中一整行<br>//SWT.MULTI 可以选中多行<br>viewer = new TableViewer(wareListGroup, SWT.BORDER | SWT.FULL_SELECTION<br>&nbsp;&nbsp;&nbsp;&nbsp;| SWT.MULTI);<br>&nbsp;&nbsp;final Table table = viewer.getTable();<br>&nbsp;&nbsp;table.setHeaderVisible(true);//显视表头<br>&nbsp;&nbsp;table.setLinesVisible(true);//显视表格<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;//实现点击表头自动重新排序<br>&nbsp;&nbsp;final TableColumn num = new TableColumn(table, SWT.NONE);<br>&nbsp;&nbsp;num.addSelectionListener(new SelectionAdapter() {<br>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;resetSort(WareViewerSort.NUM);<br>&nbsp;&nbsp;&nbsp;&nbsp;//resetSort是自己实现的重新排序的函数，只须要把不通的ViewerSort重新设置给<br>&nbsp;&nbsp;&nbsp;&nbsp;TableViewer，并刷新<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>&nbsp;&nbsp;num.setAlignment(SWT.CENTER);<br>&nbsp;&nbsp;num.setWidth(50);<br>&nbsp;&nbsp;//这个地方使用了message，只要做过国际话的大概都能明白<br>&nbsp;&nbsp;num.setText(Messages.getString("HelloView.warenum")); //$NON-NLS-1$</p>
<p>&nbsp;&nbsp;final TableColumn name = new TableColumn(table, SWT.NONE);<br>&nbsp;&nbsp;name.addSelectionListener(new SelectionAdapter() {<br>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;resetSort(WareViewerSort.NAME);//同上<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>&nbsp;&nbsp;name.setWidth(80);<br>&nbsp;&nbsp;name.setText(Messages.getString("WareView.warename")); //$NON-NLS-1$<br>&nbsp;&nbsp;name.setAlignment(SWT.CENTER);<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;final TableColumn desc = new TableColumn(table, SWT.NONE);<br>&nbsp;&nbsp;desc.addSelectionListener(new SelectionAdapter() {<br>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;resetSort(WareViewerSort.DESC);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>&nbsp;&nbsp;desc.setWidth(110);<br>&nbsp;&nbsp;desc.setText(Messages.getString("WareView.waredesc")); //$NON-NLS-1$</p>
<p>&nbsp;&nbsp;final TableColumn price = new TableColumn(table, SWT.NONE);<br>&nbsp;&nbsp;price.addSelectionListener(new SelectionAdapter() {<br>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;resetSort(WareViewerSort.PRICE);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>&nbsp;&nbsp;price.setWidth(70);<br>&nbsp;&nbsp;price.setText(Messages.getString("WareView.wareprice")); //$NON-NLS-1$<br>&nbsp;&nbsp;price.setAlignment(SWT.RIGHT);</p>
<p>&nbsp;&nbsp;final TableColumn updDate = new TableColumn(table, SWT.NONE);<br>&nbsp;&nbsp;updDate.addSelectionListener(new SelectionAdapter() {<br>&nbsp;&nbsp;&nbsp;public void widgetSelected(SelectionEvent e) {<br>&nbsp;&nbsp;&nbsp;&nbsp;resetSort(WareViewerSort.UPDDATE);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;});<br>&nbsp;&nbsp;updDate.setWidth(150);<br>&nbsp;&nbsp;updDate.setText(Messages.getString("WareView.wareupddate")); //$NON-NLS-1$<br>&nbsp;&nbsp;updDate.setAlignment(SWT.CENTER);<br>&nbsp;&nbsp;//一个TableViewer里边的数据变动主要取决于下边四句<br>&nbsp;&nbsp;viewer.setContentProvider(new WareContentProvider()); //表的显视<br>&nbsp;&nbsp;viewer.setLabelProvider(new WareLabelProvider());&nbsp;&nbsp;&nbsp; //表的数据提供者</p>
<p>&nbsp;&nbsp;viewer.setInput(//真实的数据来源); //数据来源例如ArrayList等<br>&nbsp;&nbsp;viewer.setSorter(new WareViewerSort()); //排序<br>&nbsp;&nbsp;<br>两个provider的实现类似下边的情况&nbsp;&nbsp;<br>class WareContentProvider implements IStructuredContentProvider {</p>
<p>&nbsp;&nbsp;public Object[] getElements(Object inputElement) {<br>&nbsp;&nbsp;&nbsp;if (inputElement instanceof Node) {<br>&nbsp;&nbsp;&nbsp;&nbsp;ArrayList list = new ArrayList();<br>&nbsp;&nbsp;&nbsp;&nbsp;makeWareList(((Node) inputElement), list);<br>&nbsp;&nbsp;&nbsp;&nbsp;return list.toArray();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;if (inputElement instanceof List) {<br>&nbsp;&nbsp;&nbsp;&nbsp;return ((List) inputElement).toArray();<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public void dispose() {<br>&nbsp;&nbsp;&nbsp;// TODO Auto-generated method stub</p>
<p>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {<br>&nbsp;&nbsp;&nbsp;// TODO Auto-generated method stub</p>
<p>&nbsp;&nbsp;}</p>
<p>&nbsp;}</p>
<p>class WareLabelProvider extends LabelProvider implements<br>&nbsp;&nbsp;&nbsp;ITableLabelProvider {</p>
<p>&nbsp;&nbsp;public Image getColumnImage(Object element, int columnIndex) {<br>&nbsp;&nbsp;&nbsp;// TODO Auto-generated method stub<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;&nbsp;public String getColumnText(Object element, int columnIndex) {<br>&nbsp;&nbsp;&nbsp;if (element instanceof Ware) {<br>&nbsp;&nbsp;&nbsp;&nbsp;switch (columnIndex) {<br>&nbsp;&nbsp;&nbsp;&nbsp;case 0:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ((Ware) element).getDisplayNum();<br>&nbsp;&nbsp;&nbsp;&nbsp;case 1:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ((Ware) element).getDisplayName();<br>&nbsp;&nbsp;&nbsp;&nbsp;case 2:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ((Ware) element).getDisplayDesc();<br>&nbsp;&nbsp;&nbsp;&nbsp;case 3:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ((Ware) element).getDisplayPrice();<br>&nbsp;&nbsp;&nbsp;&nbsp;case 4:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return ((Ware) element).getDisplayUpdDate();<br>&nbsp;&nbsp;&nbsp;&nbsp;default:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;return null;<br>&nbsp;&nbsp;}</p>
<p>&nbsp;}<br>&nbsp;<br></p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/79398.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-06 14:32 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/06/79398.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclipse Rcp系列 二  第一个Rcp程序</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/06/79384.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 06 Nov 2006 05:40:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/06/79384.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79384.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/06/79384.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79384.html</trackback:ping><description><![CDATA[<p class=MsoNormal style="LAYOUT-GRID:  18pt none; TEXT-ALIGN: left; mso-layout-grid-align: none" align=left><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'ＭＳ 明朝'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-font-kerning: 0pt">第一个</span> <span class=SpellE><span lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">Rcp</span> </span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'ＭＳ 明朝'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-font-kerning: 0pt">程序</span> <span lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'ＭＳ 明朝'; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'; mso-font-kerning: 0pt">新建</span> <span lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt">-&gt;project-&gt;plug-in Development-&gt;plug-in project<o:p></o:p></span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shapetype id=_x0000_t75 stroked="f" filled="f" path=" m@4@5 l@4@11@9@11@9@5 xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0 "></v:f><v:f eqn="sum @0 1 0 "></v:f><v:f eqn="sum 0 0 @1 "></v:f><v:f eqn="prod @2 1 2 "></v:f><v:f eqn="prod @3 21600 pixelWidth "></v:f><v:f eqn="prod @3 21600 pixelHeight "></v:f><v:f eqn="sum @0 0 1 "></v:f><v:f eqn="prod @6 1 2 "></v:f><v:f eqn="prod @7 21600 pixelWidth "></v:f><v:f eqn="sum @8 21600 0 "></v:f><v:f eqn="prod @7 21600 pixelHeight "></v:f><v:f eqn="sum @10 21600 0 "></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id=_x0000_i1025 style="WIDTH: 375pt; HEIGHT: 375pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image001.png"><img height=500 alt=image001.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image001.png" width=500 border=0> </v:imagedata></v:shape></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">点击</span> <span lang=EN-US>next</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shape id=_x0000_i1026 style="WIDTH: 375pt; HEIGHT: 375pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image003.png"><img height=500 alt=image003.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image003.png" width=500 border=0> </v:imagedata></v:shape></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">输入工程名</span> <span class=SpellE><span lang=EN-US>HelloRcp</span> </span><span lang=EN-US></span><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">&#224;</span> </span><span lang=EN-US>next</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shape id=_x0000_i1027 style="WIDTH: 375pt; HEIGHT: 375pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image005.png"><img height=500 alt=image005.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image005.png" width=500 border=0> </v:imagedata></v:shape></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><v:rect id=_x0000_s1031 style="MARGIN-TOP: -126.05pt; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 9pt; WIDTH: 351pt; POSITION: absolute; HEIGHT: 36pt; TEXT-ALIGN: left" filled="f" coordsize="21600,21600" strokecolor="red"><v:textbox style="MARGIN-TOP: 1.781pt; LEFT: auto; MARGIN-LEFT: 6.968pt; WIDTH: 338.562pt; TOP: auto; HEIGHT: 33.875pt" inset="5.85pt,.7pt,5.85pt,.7pt"></v:textbox></v:rect><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">其它采取默认，Rich Client Application部分选择</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">yes</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shape id=_x0000_i1028 style="WIDTH: 375pt; HEIGHT: 375pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image008.png"><img height=500 alt=image008.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image008.png" width=500 border=0> </v:imagedata></v:shape></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">选择</span> <span lang=EN-US>Hello <span class=SpellE>Rcp</span></span> <span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"></span><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN; mso-char-type: symbol; mso-symbol-font-family: Wingdings; mso-fareast-font-family: SimSun"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">&#224;</span> </span><span lang=EN-US><span style="mso-spacerun: yes">&nbsp; </span>Finish</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">工程建立完毕，下边选择</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">MANIFEST.MF</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shape id=_x0000_i1029 style="WIDTH: 424.5pt; HEIGHT: 280.5pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image010.png"><img height=458 alt=image010.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image010.png" width=694 border=0> </v:imagedata></v:shape></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">点击下边的</span> <span lang=EN-US>overview</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">进入</span> <span lang=EN-US>overview</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">视图，点击</span> <span lang=EN-US>Launch an Eclipse application</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">就可以看到运行起来的界面了。就使一个简单的窗口。</span> <span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">好，下边如何导出能类似</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">Eclipse</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">的程序</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">在</span> <span class=SpellE><span lang=EN-US>HelloRcp</span> </span><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">工程上点击右键</span> <span lang=EN-US style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">&#224;</span> </span><span lang=EN-US>new </span><span lang=EN-US style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">&#224;</span> </span><span lang=EN-US>other </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shape id=_x0000_i1030 style="WIDTH: 375pt; HEIGHT: 375pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image012.png"><img height=500 alt=image012.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image012.png" width=500 border=0> </v:imagedata></v:shape><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">选择</span> <span lang=EN-US>Product Configuration</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><v:shape id=_x0000_i1031 style="WIDTH: 375pt; HEIGHT: 480pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image014.png"><img height=640 alt=image014.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image014.png" width=500 border=0> </v:imagedata></v:shape></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><v:rect id=_x0000_s1034 style="MARGIN-TOP: -171.05pt; Z-INDEX: 2; LEFT: 0px; MARGIN-LEFT: 9pt; WIDTH: 5in; POSITION: absolute; HEIGHT: 18pt; TEXT-ALIGN: left" filled="f" coordsize="21600,21600" strokecolor="red"><v:textbox style="MARGIN-TOP: 1.781pt; LEFT: auto; MARGIN-LEFT: 6.968pt; WIDTH: 347.562pt; TOP: auto; HEIGHT: 15.875pt" inset="5.85pt,.7pt,5.85pt,.7pt"></v:textbox></v:rect><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">在划线部分填入</span> <span class=SpellE><span lang=EN-US>helloRcp</span> </span><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">，</span> <span lang=EN-US>Finish</span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><v:rect id=_x0000_s1037 style="MARGIN-TOP: 179.95pt; Z-INDEX: 3; LEFT: 0px; MARGIN-LEFT: 207pt; WIDTH: 180pt; POSITION: absolute; HEIGHT: 36pt; TEXT-ALIGN: left" filled="f" coordsize="21600,21600" strokecolor="red"><v:textbox style="MARGIN-TOP: 1.75pt; LEFT: auto; MARGIN-LEFT: 6.968pt; WIDTH: 167.562pt; TOP: auto; HEIGHT: 33.875pt" inset="5.85pt,.7pt,5.85pt,.7pt"></v:textbox></v:rect><span lang=EN-US><v:shape id=_x0000_i1032 style="WIDTH: 424.5pt; HEIGHT: 280.5pt" coordsize="21600,21600" type="#_x0000_t75"><v:imagedata o:title="" src="新規Microsoft%20Word%20文書.files/image018.png"><img height=459 alt=image018.png src="http://www.blogjava.net/images/blogjava_net/dreamstone/image018.png" width=695 border=0> </v:imagedata></v:shape><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">在三处分辨填入对应的内容，然後点击</span> <span lang=EN-US>Configuration</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">进入</span> <span lang=EN-US>configuration</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">视图</span> <span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US>add</span> <span lang=EN-US style="FONT-FAMILY: Wingdings; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">&#224;</span> </span><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">选择</span> <span class=SpellE><span lang=EN-US>HelloRcp</span> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">点击</span> <span lang=EN-US>Add Required Plug-ins<o:p></o:p></span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">然後点击划线部分，按照向导，导出成一个</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">Exe</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">工程。双击运行一下看看吧。</span> <span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p>&nbsp;</o:p> </span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">另外导出的这个工程和</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">eclipse</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">一样，比如语言啦</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">-<span class=SpellE>nl</span></span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">参数，比如</span> <span class=SpellE><span lang=EN-US style="mso-fareast-language: ZH-CN">jre</span> </span><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">的设置啦</span> <span lang=EN-US style="mso-fareast-language: ZH-CN">-<span class=SpellE>vm</span><o:p></o:p></span> </p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">最大最小内存了，都和</span> <span lang=EN-US>eclipse</span> <span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">是一样的。</span> <span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=ZH-CN style="FONT-FAMILY: SimSun; mso-ascii-font-family: Century; mso-hansi-font-family: Century; mso-fareast-language: ZH-CN">好了，这个就是一个工程的过程。前两篇文章内容很少，都是配制方面的，下边的文章开始真的多一些内容了。</span> <span lang=EN-US style="mso-fareast-language: ZH-CN; mso-fareast-font-family: SimSun"><o:p></o:p></span></p>
<p class=MsoNormal style="LAYOUT-GRID:  18pt none"><span lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'; mso-font-kerning: 0pt"><o:p>&nbsp;</o:p> </span></p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/79384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-06 13:40 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/06/79384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Eclise Rcp 系列一    第一个SWT程序</title><link>http://www.blogjava.net/dreamstone/archive/2006/11/06/79371.html</link><dc:creator>dreamstone</dc:creator><author>dreamstone</author><pubDate>Mon, 06 Nov 2006 04:42:00 GMT</pubDate><guid>http://www.blogjava.net/dreamstone/archive/2006/11/06/79371.html</guid><wfw:comment>http://www.blogjava.net/dreamstone/comments/79371.html</wfw:comment><comments>http://www.blogjava.net/dreamstone/archive/2006/11/06/79371.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/dreamstone/comments/commentRss/79371.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dreamstone/services/trackbacks/79371.html</trackback:ping><description><![CDATA[<p>写在开始：<br>由于工作须要，做了一周时间的Rcp开发，发现由于Eclipse开发方面的中文资料较少，对入门者来说有些困难，<br>所以把自己一周的内容放上，共享给开始学习Eclipse开发的人<br>Eclipse开发中有很多名词： 插件开发&nbsp; ,RCP ,SWT,Jface很容易让人迷糊<br>做个大概的比喻,如果说SWT是C++的话&nbsp; 那么JFace就像STL对SWT做了简单的封装&nbsp; Rcp就像MFC封装更多<br>而插件开发和Rcp唯一不同就使导出不同，一个导出成plug in，另一个导出成独立运行的程序。其实没有什么区别</p>
<p>好了，开始第一个程序,从Hello world开始。写到这个地方，再次崇拜一下第一个写Hello world的人。<br>真应改给他搬个什么普及教育之类的奖项。<br>import org.eclipse.swt.SWT;<br>import org.eclipse.swt.widgets.Display;<br>import org.eclipse.swt.widgets.Label;<br>import org.eclipse.swt.widgets.Shell;</p>
<p><br>public class HelloSWT {</p>
<p>&nbsp;public static void main(String[] args) {<br>&nbsp;&nbsp;Display display = new Display();<br>&nbsp;&nbsp;Shell shell = new Shell(display);<br>&nbsp;&nbsp;Label label = new Label(shell, SWT.CENTER);<br>&nbsp;&nbsp;label.setText("Hello, World");<br>&nbsp;&nbsp;label.setBounds(shell.getClientArea());<br>&nbsp;&nbsp;shell.open();<br>&nbsp;&nbsp;while (!shell.isDisposed()){<br>&nbsp;&nbsp;&nbsp; if (!display.readAndDispatch()){<br>&nbsp;&nbsp;&nbsp;&nbsp; display.sleep();<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;display.dispose();<br>&nbsp;}<br>}</p>
<p>首先介绍Display，打家都知到Swt是基于操做系统的，多大部分的控、 窗口都是调用系统的，所以得有一个东西<br>负责把java的消息转变成系统消息，Display就是。</p>
<p>Shell可以简单理解成就是窗口</p>
<p>Label就是一个标签了。</p>
<p>shell.open()显视窗口</p>
<p>while (!shell.isDisposed()){<br>&nbsp; if (!display.readAndDispatch()){<br>&nbsp;&nbsp; display.sleep();<br>&nbsp; }<br>}<br>熟悉Windows下编程的人大概都知到，Windows的消息循环机制。</p>
<p>好了试着运行一下这个程序，修改一下，找找感觉吧。</p>
<p>写到这里忽然想起自己没有写如何配制SWT的开发环境，对于新手来说这个是重要的。<br>这里有一篇文章<a href="http://dev.yesky.com/409/2620409.shtml">http://dev.yesky.com/409/2620409.shtml</a><br>如果链接失效的话google一下吧</p>
<p>说明：<br>这个系列的文章是基于eclipse 3.2.1的，另外推荐一些学习的资料或者网站<br>首先：<a href="http://www.eclipseworld.org/bbs/">http://www.eclipseworld.org/bbs/</a><br>然後：在上边的论坛里边有一些前辈们写的教程，有些不错值得一看<br>最后：当然不可少的是ibm的网站和eclipse的官方网站</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/dreamstone/aggbug/79371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dreamstone/" target="_blank">dreamstone</a> 2006-11-06 12:42 <a href="http://www.blogjava.net/dreamstone/archive/2006/11/06/79371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>