??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品久久久久9999,亚洲欧美日韩久久,亚洲宅男一区http://www.aygfsteel.com/cpenet/坚持不懈Q打?->软g—控制—机?/description>zh-cnSat, 17 May 2025 22:38:30 GMTSat, 17 May 2025 22:38:30 GMT60SWTlg的生命周期(l一个简单的SWTE序实例及详解)http://www.aygfsteel.com/cpenet/archive/2006/07/04/56539.html燕然燕然Tue, 04 Jul 2006 06:52:00 GMThttp://www.aygfsteel.com/cpenet/archive/2006/07/04/56539.htmlhttp://www.aygfsteel.com/cpenet/comments/56539.htmlhttp://www.aygfsteel.com/cpenet/archive/2006/07/04/56539.html#Feedback1http://www.aygfsteel.com/cpenet/comments/commentRss/56539.htmlhttp://www.aygfsteel.com/cpenet/services/trackbacks/56539.html上一详l介l了一个SWT实例Q这一接下来介绍SWTlg的生命周?br />本文地址Q?a id="Editor_Edit_hlEntryLink" title="view: SWTlg的生命周期(l一个简单的SWTE序实例及详解)" href="/cpenet/archive/2006/07/04/56539.html" target="_blank">http://www.aygfsteel.com/cpenet/archive/2006/07/04/56539.html

本篇译自?/span> Eclipse.Building.Commercial.Quality.Plug.ins.2nd.Edition 》第四章W二节,希望对入门者有所帮助?/span>

 

lg的生命周?/span>

设计 SWT 的一个目标就是小而灵巧。ؓ了达到这个目标,一个基本的设计{略Q就是尽可能的ɾlg的状态存储在q_lg中而不是存储在 SWT lg?/span> ( q句话,我不理解Q也译的不明白Q附原文Q?/span> To achieve this, a basic design decision was made that as much widget state as possible would be stored in the platform widget rather than in the SWT widget.) 。这?/span> Swing 形成显著的对比, Swing ?/span> Swing lg中维护了所有的lg状态?/span> ( 可能是这P SWT 把各个组件的状态交l系l^台来理Q?/span> Swing 自己理各个 Swing lg的状态,q样 Swing 复杂,耗费的资源,内存的需求也多,不知道是不是 J ) 。通过不把pȝq_U别的组件信息复制过来自q护, SWT 非常的y而且对内存的需求也相应?/span>

辑ֈq个目的所付出的代价就?/span> SWT 的组件不能够自己独立存在。当一?/span> SWT lg被创建时Q同时立卛_pȝq_下也创徏了该lg的对应体。接下来Q几乎所有对该组件的信息状态请求都会由q_来处理?/span>

大部分的pȝq_在创Z个组件时Q需要该lg明确的父lg的上下文Q所?/span> SWT 需要一个父lg来最为它的构造声明。许多^台在创徏lg时还需要该lg的特定风格参数的讑֮。例如:按钮有复选框Q单选框Q简单按钮和文本域有单行和多行之分?/span>

?/span> SWT cMQ风gD는整数cd来定义且不会更改。风格参数被l织在一P其它各种构造器传递着q些参数来创Z个组件的初始风格。注意到Q所有的q_q不支持所有的风格Q所以在很多情况下,被请求的风格被认为是一U提C,它或怼或许不会对一个特D的q_产生影响?/span>

?/span> SWT lg不在需要时Q一些^台要求作出明的释放。对于组件本w和一些资?/span> ( 例如Q图形,字体Q颜?/span> ) 而言Q他们已l具备了pȝ的这个要求。基本的规则是:如果你创Z一个组Ӟp使用 dispose() Ҏ来撤销q个lg。如果你使用了一些系l资源,例如pȝ颜色Q你׃需要释放他们?/span>

q运的,当一个组件被释放的,它的所有子lg会自动地被释?/b>。这意味着Q如果你释放了一?/span> shell Q那么所?/span> shell 包含的组仉会被自动释放?/span>



燕然 2006-07-04 14:52 发表评论
]]>
一个简单的SWTE序实例及详?/title><link>http://www.aygfsteel.com/cpenet/archive/2006/07/03/56407.html</link><dc:creator>燕然</dc:creator><author>燕然</author><pubDate>Mon, 03 Jul 2006 12:09:00 GMT</pubDate><guid>http://www.aygfsteel.com/cpenet/archive/2006/07/03/56407.html</guid><wfw:comment>http://www.aygfsteel.com/cpenet/comments/56407.html</wfw:comment><comments>http://www.aygfsteel.com/cpenet/archive/2006/07/03/56407.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/cpenet/comments/commentRss/56407.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/cpenet/services/trackbacks/56407.html</trackback:ping><description><![CDATA[ <p class="MsoNormal"> <font size="2"> <span style="FONT-FAMILY: 宋体">本文译自?/span> <span lang="EN-US">Eclipse.Building.Commercial.Quality.Plug.ins.2nd.Edition</span> <span style="FONT-FAMILY: 宋体">》第四章W二节,详细解释?/span> <span lang="EN-US">SWT</span> <span style="FONT-FAMILY: 宋体">E序的语句,希望对入门者有所帮助?/span> </font> </p> <p class="MsoNormal"> <span lang="EN-US"> <font size="2"> <?xml:namespace prefix = o /?> <o:p> </o:p> 本文地址Q?a id="Editor_Edit_hlEntryLink" title="view: 一个简单的SWTE序实例及详? href="/cpenet/archive/2006/07/03/56407.html" target="_blank"><font color="#002c99">http://www.aygfsteel.com/cpenet/archive/2006/07/03/56407.html</font></a></font> </span> </p> <p class="MsoNormal"> <font size="2"> <span style="FONT-FAMILY: 宋体">让我们从单的</span> <span lang="EN-US">HelloWorld</span> <span style="FONT-FAMILY: 宋体">应用E序开始?/span> </font> </p> <p class="MsoNormal" style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt"> <font size="2"> <span lang="EN-US"><span>一?/span></span><span style="FONT-FAMILY: 宋体">?/span><span lang="EN-US">SWT</span><span style="FONT-FAMILY: 宋体">d到工E的c\径中</span></font> </p> <p class="doctext" style="TEXT-INDENT: 24pt"> <a name="d0e19218"> </a> <font size="2">首先建立一?span lang="EN-US">java</span>工程。在开始?span lang="EN-US">SWT</span>之前Q需要将<span lang="EN-US">SWT</span>库文件添加到工程的类路径中。步骤如下: </font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <font size="2"> <span lang="EN-US"> <span>1.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span> </span>下蝲<span lang="EN-US">SWT</span>。在<span lang="EN-US">Eclipse SDK</span>的下载页面中Q提供了独立版本?span lang="EN-US">SWT</span>下蝲。找到标?span class="docemphstrong"><b><span lang="EN-US">SWT Binary and Source</span></b>的栏目。下载适合你操作系l的版本Q不用解压,直接保存到硬盘中?/span></font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <a name="d0e19257"> </a> <a name="d0e19256"> </a> <font size="2"> <span lang="EN-US"> <span>2.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span> </span>?span lang="EN-US">Eclipse</span>菜单栏,选择<b><span lang="EN-US">File-</span>?span lang="EN-US">Import...</span></b>打开导入向导 </font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <a name="d0e19274"> </a> <font size="2"> <span lang="EN-US"> <span>3.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span> </span>选择<span id="wmqeeuq" class="docemphstrong"><b><span lang="EN-US">Existing Projects into Workspace</span></b>Q点?b><span lang="EN-US">Next</span></b>按钮</span></font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <font size="2"> <span lang="EN-US"> <span>4.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span> </span>选择 <span id="wmqeeuq" class="docemphstrong"><b><span lang="EN-US">Select archive file</span></b></span><span lang="EN-US"></span>q?<span id="wmqeeuq" class="docemphstrong"><b><span lang="EN-US">Browse...</span></b></span><b><span lang="EN-US"></span></b>按钮来找C刚才下蝲?span lang="EN-US">SWT</span>文g?</font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <font size="2"> <span lang="EN-US"><span>5.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span></span>点击<b><span id="wmqeeuq" class="docemphstrong"><span lang="EN-US">Finish</span></span></b><span lang="EN-US"></span>按钮Q完?span lang="EN-US">SWT</span>导入?</font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <font size="2"> <span lang="EN-US"><span>6.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span></span>右键点击你徏立的工程Q选择<span id="wmqeeuq" class="docemphstrong"><b><span lang="EN-US">Properties</span></b></span><span lang="EN-US"></span></font> <a name="d0e19317"> </a> <a name="d0e19316"> </a> <font size="2">来打开<span id="wmqeeuq" class="docemphstrong"><span lang="EN-US">Properties</span>对话框?/span></font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <font size="2"> <span lang="EN-US"><span>7.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span></span>选择 <span id="wmqeeuq" class="docemphstrong"><b><span lang="EN-US">Java Build Path </span></b><span lang="EN-US">-><b> Projects</b></span></span><b><span lang="EN-US"> tab</span></b><span lang="EN-US"></span>q点?span class="docemphstrong"><b><span lang="EN-US">Add</span></b></span><span lang="EN-US"></span>按钮<span lang="EN-US">.</span></font> </p> <p class="doclist" style="MARGIN-LEFT: 36pt; TEXT-INDENT: -18pt"> <font size="2"> <span lang="EN-US"><span>8.<span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">    </span></span></span>选择 <span id="wmqeeuq" class="docemphstrong"><span lang="EN-US">org.eclipse.swt</span></span><span lang="EN-US"></span>工程Q?点击 <span id="wmqeeuq" class="docemphstrong"><b><span lang="EN-US">OK</span></b></span><span lang="EN-US"></span>Q完成添?span lang="EN-US">SWT</span>库到你的工程?span lang="EN-US">(</span>见图<span lang="EN-US">1).</span></font> </p> <p class="MsoNormal"> <span lang="EN-US"> <?xml:namespace prefix = v /?> <v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" 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> <font size="2"> <img height="390" alt="{26F7CFAE-1A69-42BA-A826-4576DB987FD5}.BMP" src="http://www.aygfsteel.com/images/blogjava_net/cpenet/%7B26F7CFAE-1A69-42BA-A826-4576DB987FD5%7D.BMP" width="599" border="0" /> </font> </span> <font size="2"> </font> </p> <p class="MsoNormal"> <font size="2"> <span lang="EN-US"> <span>                              </span> </span> <span style="FONT-FAMILY: 宋体">?/span> <span lang="EN-US">1</span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体">二?<a name="iddle6850"></a><span lang="EN-US">SWT </span>代码<span lang="EN-US"><o:p></o:p></span></span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <font size="2">现在在你建立?span lang="EN-US">java</span>工程中,新徏一?span lang="EN-US">java</span>文gQ取名ؓ </font> <a name="iddle6566"> </a> <a name="iddle6494"> </a> <a name="iddle6437"> </a> <a name="iddle6361"> </a> <a name="iddle5934"> </a> <a name="iddle6699"> </a> <a name="iddle6620"> </a> <a name="iddle5088"> </a> <a name="iddle4289"> </a> <a name="iddle2382"> </a> <font size="2"> <span lang="EN-US">HelloWorld</span>。在<span lang="EN-US">HelloWorld.java</span>文g中把<span lang="EN-US">main()</span>Ҏ覆盖Z下代?span lang="EN-US">: <span> </span><a name="iddle6621"></a><a name="iddle2357"></a><a name="d0e19458"></a><a name="d0e19457"></a><o:p></o:p></span></font> </span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <font size="2"> </font> </span> </p> <div style="BORDER-RIGHT: rgb(204,204,204) 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: rgb(204,204,204) 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: rgb(204,204,204) 1px solid; WIDTH: 98%; PADDING-TOP: 4px; BORDER-BOTTOM: rgb(204,204,204) 1px solid; BACKGROUND-COLOR: rgb(238,238,238)"> <!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--> <font size="2"> <span style="COLOR: rgb(0,0,0)">1</span> <span style="COLOR: rgb(0,0,0)">   </span> <span style="COLOR: rgb(0,0,255)">public</span> <span style="COLOR: rgb(0,0,0)"> </span> <span style="COLOR: rgb(0,0,255)">static</span> <span style="COLOR: rgb(0,0,0)"> </span> <span style="COLOR: rgb(0,0,255)">void</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)"> main(String[] args) {<br /></span> <span style="COLOR: rgb(0,0,0)">2</span> <span style="COLOR: rgb(0,0,0)">      Display display </span> <span style="COLOR: rgb(0,0,0)">=</span> <span style="COLOR: rgb(0,0,0)"> </span> <span style="COLOR: rgb(0,0,255)">new</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)"> Display();<br /></span> <span style="COLOR: rgb(0,0,0)">3</span> <span style="COLOR: rgb(0,0,0)">      Shell shell </span> <span style="COLOR: rgb(0,0,0)">=</span> <span style="COLOR: rgb(0,0,0)"> </span> <span style="COLOR: rgb(0,0,255)">new</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)"> Shell(display);<br /></span> <span style="COLOR: rgb(0,0,0)">4</span> <span style="COLOR: rgb(0,0,0)">      shell.setText(</span> <span style="COLOR: rgb(0,0,0)">"</span> <span style="COLOR: rgb(0,0,0)">Hello World</span> <span style="COLOR: rgb(0,0,0)">"</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">);<br /></span> <span style="COLOR: rgb(0,0,0)">5</span> <span style="COLOR: rgb(0,0,0)">      shell.setBounds(</span> <span style="COLOR: rgb(0,0,0)">100</span> <span style="COLOR: rgb(0,0,0)">, </span> <span style="COLOR: rgb(0,0,0)">100</span> <span style="COLOR: rgb(0,0,0)">, </span> <span style="COLOR: rgb(0,0,0)">200</span> <span style="COLOR: rgb(0,0,0)">, </span> <span style="COLOR: rgb(0,0,0)">50</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">);<br /></span> <span style="COLOR: rgb(0,0,0)">6</span> <span style="COLOR: rgb(0,0,0)">      shell.setLayout(</span> <span style="COLOR: rgb(0,0,255)">new</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)"> FillLayout());<br /></span> <span style="COLOR: rgb(0,0,0)">7</span> <span style="COLOR: rgb(0,0,0)">      Label label </span> <span style="COLOR: rgb(0,0,0)">=</span> <span style="COLOR: rgb(0,0,0)"> </span> <span style="COLOR: rgb(0,0,255)">new</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)"> Label(shell, SWT.CENTER);<br /></span> <span style="COLOR: rgb(0,0,0)">8</span> <span style="COLOR: rgb(0,0,0)">      label.setText(</span> <span style="COLOR: rgb(0,0,0)">"</span> <span style="COLOR: rgb(0,0,0)">Hello World</span> <span style="COLOR: rgb(0,0,0)">"</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">);<br /></span> <span style="COLOR: rgb(0,0,0)">9</span> <span style="COLOR: rgb(0,0,0)">      Color red </span> <span style="COLOR: rgb(0,0,0)">=</span> <span style="COLOR: rgb(0,0,0)"> </span> <span style="COLOR: rgb(0,0,255)">new</span> <span style="COLOR: rgb(0,0,0)"> Color(display, </span> <span style="COLOR: rgb(0,0,0)">255</span> <span style="COLOR: rgb(0,0,0)">, </span> <span style="COLOR: rgb(0,0,0)">0</span> <span style="COLOR: rgb(0,0,0)">, </span> <span style="COLOR: rgb(0,0,0)">0</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">);<br /></span> <span style="COLOR: rgb(0,0,0)">10</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">     label.setForeground(red);<br /></span> <span style="COLOR: rgb(0,0,0)">11</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">     shell.open();<br /></span> <span style="COLOR: rgb(0,0,0)">12</span> <span style="COLOR: rgb(0,0,0)">     </span> <span style="COLOR: rgb(0,0,255)">while</span> <span style="COLOR: rgb(0,0,0)"> (</span> <span style="COLOR: rgb(0,0,0)">!</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">shell.isDisposed()) {<br /></span> <span style="COLOR: rgb(0,0,0)">13</span> <span style="COLOR: rgb(0,0,0)">        </span> <span style="COLOR: rgb(0,0,255)">if</span> <span style="COLOR: rgb(0,0,0)"> (</span> <span style="COLOR: rgb(0,0,0)">!</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">display.readAndDispatch()) display.sleep();<br /></span> <span style="COLOR: rgb(0,0,0)">14</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">     }<br /></span> <span style="COLOR: rgb(0,0,0)">15</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">     red.dispose();<br /></span> <span style="COLOR: rgb(0,0,0)">16</span> </font> <font size="2"> <span style="COLOR: rgb(0,0,0)">     display.dispose();<br /></span> <span style="COLOR: rgb(0,0,0)">17</span> </font> <span style="COLOR: rgb(0,0,0)"> <font size="2">  } <br /></font> </span> </div> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <o:p> <font size="2"> </font> </o:p> </span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">注:<span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <font size="2">在覆盖了上述代码?span lang="EN-US">, </span>选择菜单栏中?</font> <a name="iddle6723"> </a> <font size="2"> <b> <span lang="EN-US">Source</span> </b> <span lang="EN-US">-> <b>Organize Imports</b></span>命o<span lang="EN-US"> (</span>或者按<span lang="EN-US">Ctrl+Shift+O) </span>来把需要引用的<span lang="EN-US">SWT</span>包导入到<span lang="EN-US">HelloWorld.java</span>文g?</font> <a name="d0e19487"> </a> <font size="2">?span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <a name="d0e19499"> </a> <a name="d0e19498"> </a> <a name="d0e19497"> </a> <a name="d0e19496"> </a> <a name="d0e19495"> </a> <a name="d0e19494"> </a> <a name="d0e19493"> </a> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">以下是对各行代码的详l解释:<span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">2</span>行:每个Z<span lang="EN-US">SWT</span>的应用程序都有一?span lang="EN-US">Display</span>cȝ实例。用来将低层q_?span lang="EN-US">SWT</span>q行链接。除了管?span lang="EN-US">SWT</span>的事件@环,q能讉K<span lang="EN-US">SWT</span>需要的q_资源。在<span lang="EN-US">16</span>行,<span lang="EN-US">display</span>实例会提交l垃圾收集器?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">3</span>行:每一个窗口都有一?span lang="EN-US">Shell</span>H口框架Q来与用戯行交互?span lang="EN-US">Shell</span>像所有的<span lang="EN-US">windows</span>pȝ一h处理动作行ؓQƈ作ؓH口控g的放|场所?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">4</span>行: <span lang="EN-US">setText()</span>Ҏ讄H口的标?span lang="EN-US">.<o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">5</span>行: <span lang="EN-US">setBounds() </span>Ҏ讄H口的大和攄的位|?span lang="EN-US">. </span>在这个例子中<span lang="EN-US">, </span>讄H口?span lang="EN-US">200</span>个像素宽Q?span lang="EN-US">50</span>个像素高Qƈ攑֜dq的左上?span lang="EN-US">100x100</span>像素的位|上?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <font size="2">W?span lang="EN-US">6</span>行: <span lang="EN-US">setLayout()</span>Ҏ 讄H口框架的布局<span lang="EN-US">. FillLayout</span>Q充满式布局理器,使得lg大小会尽量的充满整个容器<span lang="EN-US">.SWT</span>的布局理器会在以后详l介l?<span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">7</span>行:?span lang="EN-US">shell</span>上新Z个简单的<span lang="EN-US">label</span>lgq居中显C?span lang="EN-US">label</span>的文本内宏V?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">8</span>行: <span lang="EN-US">setText() </span>Ҏ 讄<span lang="EN-US">label</span>的文本内宏V?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">9</span>行:创徏一个红色的颜色cȝ实例。你也可以用以下语句获得系l红色的实例Q?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 60pt; TEXT-ALIGN: left" align="left"> <font size="2"> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">Color red = display.getSystemColor(SWT.COLOR_RED);<o:p></o:p></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">10</span>行: <span lang="EN-US">setForeground() </span>Ҏ <span> </span>讄<span lang="EN-US">label</span>的前景色<span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">11</span>行:到目前ؓ止,H口框架q是不可见的。通过<span lang="EN-US">open()</span>Ҏ使得H口可见?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">12</span>行: <span lang="EN-US">while</span>语句循环窗口有没有关闭?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <font size="2">W?span lang="EN-US">13</span>行:<span lang="EN-US">display </span>控制事g的@?span lang="EN-US">. readAndDispatch() </span>Ҏ从^台的事g队列中读取事Ӟq分配他们到合适的处理E序<span lang="EN-US">(</span>接收?span lang="EN-US">)</span>。只要队列中一直有事g可以处理Q这个方法一直返?span lang="EN-US">true</span>Q当事g队列为空Ӟ则返?span lang="EN-US">false(</span>因此允许用户界面<span lang="EN-US">UI</span>U程Z<span lang="EN-US">sleep</span>状态直C仉列不为空<span lang="EN-US">)</span>?<span lang="EN-US"><o:p></o:p></span></font> </span> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">W?span lang="EN-US">15,16</span>行:当@环检到H口被关闭时Q需要将<span lang="EN-US">color</span>Q?span lang="EN-US">display</span>和一些相兌的^台资源释放。注意到pȝ颜色实例<span lang="EN-US">(colors)</span>会被提交释放?span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt; TEXT-ALIGN: left" align="left"> <font size="2"> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <span>二?span style="FONT: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">            </span></span> </span> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">q行q个例子<span lang="EN-US"><o:p></o:p></span></span> </font> </p> <p class="MsoNormal" style="TEXT-ALIGN: left" align="left"> <font size="2"> <span style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体">通常情况下,Z启动一?span lang="EN-US">java</span>应用E序Q会使用<b><span lang="EN-US">Run As -</span>?/b></span> <span id="wmqeeuq" class="docemphstrong"> <b> <span lang="EN-US">Java Application</span> </b> </span> <span id="wmqeeuq" class="docemphstrong"> <span style="FONT-FAMILY: 宋体">命o。在q里Q如此运行将会抛?/span> </span> <b> <span lang="EN-US">UnsatisfiedLinkError</span> </b> <span style="FONT-FAMILY: 宋体">异常Q说明没有找?/span> <span lang="EN-US">SWT</span> <span style="FONT-FAMILY: 宋体">的本地库。如果运?/span> <span id="wmqeeuq" class="docemphstrong"> <b> <span lang="EN-US">Run As > SWT Application</span> </b> <span lang="EN-US"> </span> </span> <span id="wmqeeuq" class="docemphstrong"> <span style="FONT-FAMILY: 宋体">命oQ将会弹?/span> <span lang="EN-US">SWT</span> </span> <span id="wmqeeuq" class="docemphstrong"> <span style="FONT-FAMILY: 宋体">启动配置H口Q见?/span> <span lang="EN-US">2</span> </span> <span id="wmqeeuq" class="docemphstrong"> <span style="FONT-FAMILY: 宋体">Q在?/span> <span lang="EN-US">2</span> </span> <span id="wmqeeuq" class="docemphstrong"> <span style="FONT-FAMILY: 宋体">中可以点?/span> <b> <span lang="EN-US">run</span> </b> </span> <span id="wmqeeuq" class="docemphstrong"> <span style="FONT-FAMILY: 宋体">按钮?</span> </span> <span lang="EN-US" style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体"> <o:p> </o:p> </span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 21pt"> <font size="2"> <span lang="EN-US"> <img height="337" alt="{3717602A-4D02-4E2D-A913-A6BC4E1289A8}.BMP" src="http://www.aygfsteel.com/images/blogjava_net/cpenet/%7B3717602A-4D02-4E2D-A913-A6BC4E1289A8%7D.BMP" width="504" border="0" /></span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 21pt"> <font size="2"> <span lang="EN-US"> <span>                                </span> </span> <span style="FONT-FAMILY: 宋体">?/span> <span lang="EN-US">2</span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 21pt"> <font size="2"> <span style="FONT-FAMILY: 宋体">点击</span> <b> <span lang="EN-US">run</span> </b> <span style="FONT-FAMILY: 宋体">Q运行结果图</span> <span lang="EN-US">3</span> <span style="FONT-FAMILY: 宋体">?/span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 21pt"> <font size="2"> <span lang="EN-US"> <img height="53" alt="{978DFCF8-658E-40EC-80D4-3DD5D8FACF1F}.BMP" src="http://www.aygfsteel.com/images/blogjava_net/cpenet/%7B978DFCF8-658E-40EC-80D4-3DD5D8FACF1F%7D.BMP" width="203" border="0" /></span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 21pt"> <font size="2"> <span lang="EN-US"> <span>          </span> </span> <span style="FONT-FAMILY: 宋体">?/span> <span lang="EN-US">3</span> </font> </p> <p class="MsoNormal" style="TEXT-INDENT: 21pt"> <span lang="EN-US"> <font size="2">(以后l箋) <br /></font> </span> </p> <img src ="http://www.aygfsteel.com/cpenet/aggbug/56407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/cpenet/" target="_blank">燕然</a> 2006-07-03 20:09 <a href="http://www.aygfsteel.com/cpenet/archive/2006/07/03/56407.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>org.eclipse.ui ?/title><link>http://www.aygfsteel.com/cpenet/archive/2006/06/30/IWorkbenchWindow.html</link><dc:creator>燕然</dc:creator><author>燕然</author><pubDate>Fri, 30 Jun 2006 12:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/cpenet/archive/2006/06/30/IWorkbenchWindow.html</guid><wfw:comment>http://www.aygfsteel.com/cpenet/comments/56025.html</wfw:comment><comments>http://www.aygfsteel.com/cpenet/archive/2006/06/30/IWorkbenchWindow.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/cpenet/comments/commentRss/56025.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/cpenet/services/trackbacks/56025.html</trackback:ping><description><![CDATA[ <font size="2">org.eclipse.ui包是应用E序界面的包, Eclipse的^台的界面也是使用了这个包.<br />包中有接口IWorkbenchWindow,API中的说明<br /></font> <p> <font size="2">A workbench window is a top level window in a workbench. Visually, a workbench window has a menubar, a toolbar, a status bar, and a main area for displaying a single page consisting of a collection of views and editors. </font> </p> <p> <font size="2">Each workbench window has a collection of 0 or more pages; the active page is the one that is being presented to the end user; at most one page is active in a window at a time. </font> </p> <p> <font size="2">This interface is not intended to be implemented by clients.</font> </p> <p> <font size="2">一个工作台H口是一个工作台的顶层窗?从视觉上?一个工作台H口拥有一个菜单栏,工具?状态栏和一个主区域,用来昄包括昄和编辑的一个页?</font> </p> <p> <font size="2">每个工作台窗口有0个或者更多的面.zd的页面是一U显C给当前使用者的面.大多数情况下,在一个时d有一个页面处于活动状?</font> </p> <p> <font size="2">q个接口不打由用户来实?</font> </p> <p> <b> <font size="2">(to more)</font> </b> <br /> </p> <img src ="http://www.aygfsteel.com/cpenet/aggbug/56025.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/cpenet/" target="_blank">燕然</a> 2006-06-30 20:10 <a href="http://www.aygfsteel.com/cpenet/archive/2006/06/30/IWorkbenchWindow.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Rich Client Tutorial Part 1Q翻译)http://www.aygfsteel.com/cpenet/archive/2006/06/30/56010.html燕然燕然Fri, 30 Jun 2006 10:27:00 GMThttp://www.aygfsteel.com/cpenet/archive/2006/06/30/56010.htmlhttp://www.aygfsteel.com/cpenet/comments/56010.htmlhttp://www.aygfsteel.com/cpenet/archive/2006/06/30/56010.html#Feedback1http://www.aygfsteel.com/cpenet/comments/commentRss/56010.htmlhttp://www.aygfsteel.com/cpenet/services/trackbacks/56010.html Rich Client Tutorial是Eclipse官方|站的RCP开发指南。原文地址为: http://www.eclipse.org/articles/Article-RCP-1/tutorial1.html
W一ơ翻译,有错误,Ƣ迎指正?/font>

Rich Client Tutorial Part 1

The Rich Client Platform (RCP) is an exciting new way to build Java applications that can compete with native applications on any platform. This tutorial is designed to get you started building RCP applications quickly. It has been updated for Eclipse 3.1.2

富客Lq_Q?/span> RCP Q是一个o人兴奋的创徏 java 应用E序的新方式Q她可以与Q何^C的本地应用程序相媲美。这份指南目的在于让你快速的构徏 rcp 应用E序。本指南已更斎ͼ适用?/span> Eclipse 3.1.2 ?/span>

Introduction

Try this experiment: Show Eclipse to some friends or co-workers who haven't seen it before and ask them to guess what language it is written in. Chances are, they'll guess VB, C++, or C#, because those languages are used most often for high quality client side applications. Then watch the look on their faces when you tell them it was created in Java, especially if they are Java programmers.

Because of its unique open source license, you can use the technologies that went into Eclipse to create your own commercial quality programs. Before version 3.0, this was possible but difficult, especially when you wanted to heavily customize the menus, layouts, and other user interface elements. That was because the "IDE-ness" of Eclipse was hard-wired into it. Version 3.0 introduced the Rich Client Platform (RCP), which is basically a refactoring of the fundamental parts of Eclipse's UI, allowing it to be used for non-IDE applications. Version 3.1 updated RCP with new capabilities, and, most importantly, new tooling support to make it easier to create than before.

If you want to cut to the chase and look at the code for this part you can find it in the accompanying zip file . Otherwise, let's take a look at how to construct an RCP application.

引言

试做这个实验:?/span> Eclipse 展示l你的那些以前没见过 Eclipse 的朋友或合作伙伴Q让他们猜猜q是用何U语a~写的。很有可能,他们会说?/span> VB Q?/span> C++ 或?/span> C# Q因些语al常被用来作为高质量客户端方面的应用E序。当你告诉他们是?/span> java ~写Ӟ察看他们怸的表情,其当他们是 java E序员的话?/span>

因ؓ Eclipse 是唯一 开放源代码许可的,你可以用 Eclipse q个技术来创徏你自己商业质量的E序。在 3.0 版本以前Q这是可能的Q但也是困难的,其当你惌订制菜单Q多层和其他用户界面元素时。那是因为很难接触到 Eclipse ?/span> IDE 核心?/span> 3.0 版本?/span> Eclipse 引入了富客户端编E( RCP Q,q基本上?/span> Eclipse UI 的重新构建,也就允许 Eclipse UI 被应用到?/span> Eclipse IDE 的应用程序中?/span> 3.1 版本?/span> Eclipse 用新Ҏ升U了 RCP Q最重要的是Q新的工具的创?/span> RCP 应用E序比以前更加容易?/span>

如果你想要研I?/span> Rich Client Tutorial Part 1 的代码,你可以到 accompanying zip file 下蝲。另外,让我们一步步来看看如何创Z?/span> RCP 应用E序?/span>

Getting started

开?/span>

RCP applications are based on the familiar Eclipse plug-in architecture, (if it's not familiar to you, see the references section). Therefore, you'll need to create a plug-in to be your main program. Eclipse's Plug-in Development Environment (PDE) provides a number of wizards and editors that take some of the drudgery out of the process. PDE is included with the Eclipse SDK download so that is the package you should be using. Here are the steps you should follow to get started.

RCP 应用E序Z熟悉?/span> Eclipse 插g机制Q(如果你不熟悉Q请查看参考书目部分)。因此,你要创徏一个插件来作ؓ你的ȝ序?/span> Eclipse 的插件开发环境( PDE Q提供了大量的控件和~辑器来使得开发过E脱苦?/span> PDE 包括在了 Eclipse SDK Q所?/span> PDE 开发包你可以直接用。以下是开始开发的步骤Q?/span>

First, bring up Eclipse and select File > New > Project, then expand Plug-in Development and double-click Plug-in Project to bring up the Plug-in Project wizard. On the subsequent pages, enter a Project name such as org.eclipse.ui.tutorials.rcp.part1, indicate you want a Java project, select the version of Eclipse you're targeting (at least 3.1), and enable the option to Create an OSGi bundle manifest. Then click Next >.

首先Q启?/span> Eclipse Q选择File > New > Project?/strong>接下来选中 Plug-in DevelopmentQ?/strong>双击来打开插g工程向导。在弹出的页面中Q键入工E名Q例如: org.eclipse.ui.tutorials.rcp.part1Q,指明你要一?/span> java工程Q选择你想创徏适用?/span> Eclise的版本,q中使用 OSGI包。接下来点击 Next> ?/span>

noteQ?/b>Beginning in Eclipse 3.1 you will get best results by using the OSGi bundle manifest. In contrast to previous versions, this is now the default.

In the next page of the Wizard you can change the Plug-in ID and other parameters. Of particular importance is the question, "Would you like to create a rich client application?". Select Yes. The generated plug-in class is optional but for this example just leave all the other options at their default values. Click Next > to continue.

注: 通过使用 Eclipse 3.1 ?/span> OSGI 包,你会获得很好的结果。与以前的版本相比, OSGi 现在是默认的了?/span>

在下一向gQ你可以更改插g?/span> ID 号和其他参数。尤其要x一个问题:“你惌创徏一个富客户端的应用E序吗?”,选择“是”。生成的插gcL可选的Q但对于q个例子Q一切其他的可选项都设为默认倹{单?strong>Next >C一?strong>?/strong>

noteQ?/b> If you get a dialog asking if Eclipse can switch to the Plug-in Development Perspective click Remember my decision and select Yes (this is optional).

注:如果你得C个对话框Q询?/span> Eclipse 是否切换到插件开发透视图。这时单击记住我的选择q择“是”(q是可选的Q?/span>

Starting with Eclipse 3.1, several templates have been provided to make creating an RCP application a breeze. We'll use the simplest one available and see how it works. Make sure the option to Create a plug-in using one of the templates is enabled, then select the Hello RCP template. This is RCP's equivalent of "Hello, world". Click Finish to accept all the defaults and generate the project (see Figure 1). Eclipse will open the Plug-in Manifest Editor. The Plug-in Manifest editor puts a friendly face on the various configuration files that control your RCP application.

?/span> Eclipse 3.1 开始,提供了几个模板得创?/span> RCP 应用E序相当Ҏ。我们用最单的一个模板来观察q是如何工作的。确保创Z个插件用模板之一是允许的Q接着选择?/span> Hello RCP ”模ѝ这?/span> RCP 应用E序中的?/span> Hello, world ”。选择“完成”来创徏工程Q见图一Q?/span> Eclipse 会打开插g~辑器。插件编辑器提供了友好的界面Q拥有多L配置文g来控制你的RQP应用E序?/span>



Figure 1. The Hello World RCP project was created by a PDE wizard.

图一QPQI向导创徏的ᅢello QPrld工E?/span>

(未完Q待l?



燕然 2006-06-30 18:27 发表评论
]]>
学习rcp 感觉好烦?/title><link>http://www.aygfsteel.com/cpenet/archive/2006/06/30/56009.html</link><dc:creator>燕然</dc:creator><author>燕然</author><pubDate>Fri, 30 Jun 2006 10:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/cpenet/archive/2006/06/30/56009.html</guid><wfw:comment>http://www.aygfsteel.com/cpenet/comments/56009.html</wfw:comment><comments>http://www.aygfsteel.com/cpenet/archive/2006/06/30/56009.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/cpenet/comments/commentRss/56009.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/cpenet/services/trackbacks/56009.html</trackback:ping><description><![CDATA[q个RCP的开发怎么感觉转来转去Q{晕了。。唉Q对eclipse的开发api又很不熟悉,感觉无从下手?img src ="http://www.aygfsteel.com/cpenet/aggbug/56009.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/cpenet/" target="_blank">燕然</a> 2006-06-30 18:16 <a href="http://www.aygfsteel.com/cpenet/archive/2006/06/30/56009.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ֳ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ն</a>| <a href="http://" target="_blank">ӻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݸ</a>| <a href="http://" target="_blank">üɽ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">״</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank">ŷ</a>| <a href="http://" target="_blank">ͨɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">¦</a>| <a href="http://" target="_blank">崨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ƶ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ֵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">޶</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ᶼ</a>| <a href="http://" target="_blank">ڽ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʦ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>