﻿<?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-姐夫的唠叨-文章分类-Eclipse</title><link>http://www.blogjava.net/kingLv/category/35830.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 13 Nov 2008 10:18:06 GMT</lastBuildDate><pubDate>Thu, 13 Nov 2008 10:18:06 GMT</pubDate><ttl>60</ttl><item><title>在SWT Table 单元格中绘制渐变效果</title><link>http://www.blogjava.net/kingLv/articles/239354.html</link><dc:creator>姐夫的唠叨</dc:creator><author>姐夫的唠叨</author><pubDate>Fri, 07 Nov 2008 16:33:00 GMT</pubDate><guid>http://www.blogjava.net/kingLv/articles/239354.html</guid><wfw:comment>http://www.blogjava.net/kingLv/comments/239354.html</wfw:comment><comments>http://www.blogjava.net/kingLv/articles/239354.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kingLv/comments/commentRss/239354.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kingLv/services/trackbacks/239354.html</trackback:ping><description><![CDATA[<p style="font-size: 14pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
</p>
<p style="font-size: 14pt;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在日常的系统开发中，swt的table以及tree是最常用的两种复杂控件，如果使用最原始的swt中的table，使用起来是比较的繁琐，幸好Eclipse在jface给我们提供了viewer框架，极大地简化了table和tree这两种复杂控件的使用。在最近开发的一个新的模块中，关于table遇到了一个新的case。table的某一列显示的一个百分比，要求在这一列除了显示百分比之外，还要使用渐变的背景，来可视化地显示，效果类似于<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</p>
<div align="center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/kinglv/1.jpg" width="154" height="64" /></div>
<br />
花了一点时间终于做出来了，在此跟大家分享一下。具体的做法就是使用GC自己在table上把背景以及单元格中显示的内容给画出来。<br />
<br />
<p>&nbsp;</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><span style="color: #008080;">&nbsp;1</span><img id="Codehighlighter1_28_1797_Open_Image" onclick="this.style.display='none'; Codehighlighter1_28_1797_Open_Text.style.display='none'; Codehighlighter1_28_1797_Closed_Image.style.display='inline'; Codehighlighter1_28_1797_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_28_1797_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_28_1797_Closed_Text.style.display='none'; Codehighlighter1_28_1797_Open_Image.style.display='inline'; Codehighlighter1_28_1797_Open_Text.style.display='inline';" alt="" 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;PaintTableCell&nbsp;</span><span id="Codehighlighter1_28_1797_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_28_1797_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;2</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080;">&nbsp;3</span><span style="color: #000000;"><img id="Codehighlighter1_71_1795_Open_Image" onclick="this.style.display='none'; Codehighlighter1_71_1795_Open_Text.style.display='none'; Codehighlighter1_71_1795_Closed_Image.style.display='inline'; Codehighlighter1_71_1795_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_71_1795_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_71_1795_Closed_Text.style.display='none'; Codehighlighter1_71_1795_Open_Image.style.display='inline'; Codehighlighter1_71_1795_Open_Text.style.display='inline';" alt="" 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_71_1795_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_71_1795_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;4</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">&nbsp;5</span><span style="color: #000000;"><img alt="" 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(display);<br />
</span><span style="color: #008080;">&nbsp;6</span><span style="color: #000000;"><img alt="" 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;">Paint&nbsp;Table&nbsp;Cell</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;7</span><span style="color: #000000;"><img alt="" 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;">400</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">&nbsp;8</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">&nbsp;9</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img alt="" 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;Table&nbsp;table&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Table(shell,&nbsp;SWT.FULL_SELECTION&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;SWT.SINGLE);<br />
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setHeaderVisible(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">12</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.setLinesVisible(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">13</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableColumn&nbsp;column1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TableColumn(table,&nbsp;SWT.NONE);<br />
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column1.setWidth(</span><span style="color: #000000;">100</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column1.setAlignment(SWT.LEFT);<br />
</span><span style="color: #008080;">17</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column1.setText(</span><span style="color: #000000;">"</span><span style="color: #000000;">Column&nbsp;1</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">18</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">19</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableColumn&nbsp;column2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TableColumn(table,&nbsp;SWT.NONE);<br />
</span><span style="color: #008080;">20</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column2.setWidth(</span><span style="color: #000000;">100</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">21</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column2.setAlignment(SWT.RIGHT);<br />
</span><span style="color: #008080;">22</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;column2.setText(</span><span style="color: #000000;">"</span><span style="color: #000000;">Column&nbsp;2</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">23</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">24</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableItem&nbsp;item1&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TableItem(table,&nbsp;SWT.NONE);<br />
</span><span style="color: #008080;">25</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item1.setText(</span><span style="color: #000000;">"</span><span style="color: #000000;">item&nbsp;11</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">26</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">27</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TableItem&nbsp;item2&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TableItem(table,&nbsp;SWT.NONE);<br />
</span><span style="color: #008080;">28</span><span style="color: #000000;"><img id="Codehighlighter1_867_888_Open_Image" onclick="this.style.display='none'; Codehighlighter1_867_888_Open_Text.style.display='none'; Codehighlighter1_867_888_Closed_Image.style.display='inline'; Codehighlighter1_867_888_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_867_888_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_867_888_Closed_Text.style.display='none'; Codehighlighter1_867_888_Open_Image.style.display='inline'; Codehighlighter1_867_888_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item2.setText(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;String[]&nbsp;</span><span id="Codehighlighter1_867_888_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_867_888_Open_Text"><span style="color: #000000;">{</span><span style="color: #000000;">"</span><span style="color: #000000;">item&nbsp;21</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">item&nbsp;22</span><span style="color: #000000;">"</span><span style="color: #000000;">}</span></span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">29</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">30</span><span style="color: #000000;"><img id="Codehighlighter1_940_1649_Open_Image" onclick="this.style.display='none'; Codehighlighter1_940_1649_Open_Text.style.display='none'; Codehighlighter1_940_1649_Closed_Image.style.display='inline'; Codehighlighter1_940_1649_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_940_1649_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_940_1649_Closed_Text.style.display='none'; Codehighlighter1_940_1649_Open_Image.style.display='inline'; Codehighlighter1_940_1649_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.addPaintListener(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;PaintListener()&nbsp;</span><span id="Codehighlighter1_940_1649_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_940_1649_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">31</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080;">32</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
</span><span style="color: #008080;">33</span><span style="color: #000000;"><img id="Codehighlighter1_998_1641_Open_Image" onclick="this.style.display='none'; Codehighlighter1_998_1641_Open_Text.style.display='none'; Codehighlighter1_998_1641_Closed_Image.style.display='inline'; Codehighlighter1_998_1641_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_998_1641_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_998_1641_Closed_Text.style.display='none'; Codehighlighter1_998_1641_Open_Image.style.display='inline'; Codehighlighter1_998_1641_Open_Text.style.display='inline';" alt="" 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;paintControl(PaintEvent&nbsp;e)&nbsp;</span><span id="Codehighlighter1_998_1641_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_998_1641_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">34</span><span style="color: #000000;"><img alt="" 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: #008000;">//</span><span style="color: #008000;">获得单元格的位置</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">35</span><span style="color: #008000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Rectangle&nbsp;rect&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;table.getItem(</span><span style="color: #000000;">0</span><span style="color: #000000;">).getBounds(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">36</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">37</span><span style="color: #000000;"><img alt="" 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: #008000;">//</span><span style="color: #008000;">计算需要绘制渐变效果的长度</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">38</span><span style="color: #008000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000;">&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;width&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;rect.width&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">67</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">;</span><span style="color: #008000;">//</span><span style="color: #008000;">67%</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">39</span><span style="color: #008000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">40</span><span style="color: #000000;"><img alt="" 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;GC&nbsp;gc&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;e.gc;<br />
</span><span style="color: #008080;">41</span><span style="color: #000000;"><img alt="" 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: #008000;">//</span><span style="color: #008000;">设置GC的背景色和前景色</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">42</span><span style="color: #008000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gc.setForeground(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Color(display,&nbsp;</span><span style="color: #000000;">255</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">192</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">43</span><span style="color: #000000;"><img alt="" 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;gc.setBackground(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;Color(display,&nbsp;</span><span style="color: #000000;">255</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">230</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">151</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">44</span><span style="color: #000000;"><img alt="" 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: #008000;">//</span><span style="color: #008000;">绘制渐变效果</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">45</span><span style="color: #008000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gc.fillGradientRectangle(rect.x,&nbsp;rect.y,&nbsp;width,&nbsp;rect.height,&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">46</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">47</span><span style="color: #000000;"><img alt="" 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: #008000;">//</span><span style="color: #008000;">绘制单元格中的文字</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">48</span><span style="color: #008000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;text&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">item&nbsp;12</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">49</span><span style="color: #000000;"><img alt="" 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;gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));<br />
</span><span style="color: #008080;">50</span><span style="color: #000000;"><img alt="" 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;pixels&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;gc.getFontMetrics().getAverageCharWidth()&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;text.length();<br />
</span><span style="color: #008080;">51</span><span style="color: #000000;"><img alt="" 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;gc.drawString(text,&nbsp;rect.x&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000;">&nbsp;rect.width&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;pixels&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">6</span><span style="color: #000000;">,&nbsp;rect.y,&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">52</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">53</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">54</span><span style="color: #000000;"><img alt="" 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;">);&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">55</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">56</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shell.open();<br />
</span><span style="color: #008080;">57</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">58</span><span style="color: #000000;"><img id="Codehighlighter1_1705_1771_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1705_1771_Open_Text.style.display='none'; Codehighlighter1_1705_1771_Closed_Image.style.display='inline'; Codehighlighter1_1705_1771_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1705_1771_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1705_1771_Closed_Text.style.display='none'; Codehighlighter1_1705_1771_Open_Image.style.display='inline'; Codehighlighter1_1705_1771_Open_Text.style.display='inline';" alt="" 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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">shell.isDisposed())&nbsp;</span><span id="Codehighlighter1_1705_1771_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1705_1771_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">59</span><span style="color: #000000;"><img id="Codehighlighter1_1741_1767_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1741_1767_Open_Text.style.display='none'; Codehighlighter1_1741_1767_Closed_Image.style.display='inline'; Codehighlighter1_1741_1767_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1741_1767_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_1741_1767_Closed_Text.style.display='none'; Codehighlighter1_1741_1767_Open_Image.style.display='inline'; Codehighlighter1_1741_1767_Open_Text.style.display='inline';" alt="" 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;">(</span><span style="color: #000000;">!</span><span style="color: #000000;">display.readAndDispatch())&nbsp;</span><span id="Codehighlighter1_1741_1767_Closed_Text" style="border: 1px solid #808080; display: none; background-color: #ffffff;"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1741_1767_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">60</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">61</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">62</span><span style="color: #000000;"><img alt="" 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 />
</span><span style="color: #008080;">63</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display.dispose();<br />
</span><span style="color: #008080;">64</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">65</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">66</span><span style="color: #000000;"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<p style="font-size: 14pt;">显示效果如下<br />
</p>
<div align="center"><img alt="" src="http://www.blogjava.net/images/blogjava_net/kinglv/2.jpg" width="149" height="67" /></div>
<div align="center"></div>
<br />
<p><br />
</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/kingLv/aggbug/239354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kingLv/" target="_blank">姐夫的唠叨</a> 2008-11-08 00:33 <a href="http://www.blogjava.net/kingLv/articles/239354.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>