﻿<?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/carob/category/7568.html</link><description>…… …… 所学 所写 所想 所做 所悟…… …… </description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:20:19 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:20:19 GMT</pubDate><ttl>60</ttl><item><title>Equinox下的WEB随想</title><link>http://www.blogjava.net/carob/archive/2006/08/15/63766.html</link><dc:creator>carob</dc:creator><author>carob</author><pubDate>Tue, 15 Aug 2006 12:56:00 GMT</pubDate><guid>http://www.blogjava.net/carob/archive/2006/08/15/63766.html</guid><wfw:comment>http://www.blogjava.net/carob/comments/63766.html</wfw:comment><comments>http://www.blogjava.net/carob/archive/2006/08/15/63766.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/carob/comments/commentRss/63766.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/carob/services/trackbacks/63766.html</trackback:ping><description><![CDATA[
		<p>          从目前的趋势来看，OSGI在软件行业的应用相当被看好，ECLIPSE,WAS也全面采用OSGI规范了，由于eclipse自身在采用OSGI之前有一套自恰的plugin机制，而这种几乎具备无限扩充的plugin机制打开了一个巨大的plugin市场，再加上OpenSource的东风，使得eclipse几乎一统Java的IDE市场。<br />         从3.0eclipse全面采用OSGI开始，便对OSGI多了一份研究，在以eclipse为背景的桌面软件开发领域，osgi如鱼得水，但我更多的是在做Java的server端开发，很想能够看到web领域能从osgi/Equinox中得到一些灵感，很希望，那灵活的plugin/bundle机制能发挥在web的前后端开发中，之前在TSS上有人做了一个自称为RSP（与RCP相响应）的DEMO，展示了如何在Web页面中做到不重启服务器来实现页面数据的动态组装及服务请求。我们都知道在eclipse的插件开发中，我们可以单独开发一个viewpart或者菜单来插入到现成的IDE中而保持独立性，如果这种特性能在WEB中实现的话，那是相当的诱人的，现在Equinox已经实现的OSGI 的大部分规范，也提供了对serlvet及jsp的支持，但仍不够方便，希望在不久以后能看这方面的进展。<br />     </p>
<img src ="http://www.blogjava.net/carob/aggbug/63766.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/carob/" target="_blank">carob</a> 2006-08-15 20:56 <a href="http://www.blogjava.net/carob/archive/2006/08/15/63766.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SWT中的Sytem Tray相关处理</title><link>http://www.blogjava.net/carob/archive/2006/03/19/36076.html</link><dc:creator>carob</dc:creator><author>carob</author><pubDate>Sun, 19 Mar 2006 08:36:00 GMT</pubDate><guid>http://www.blogjava.net/carob/archive/2006/03/19/36076.html</guid><wfw:comment>http://www.blogjava.net/carob/comments/36076.html</wfw:comment><comments>http://www.blogjava.net/carob/archive/2006/03/19/36076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/carob/comments/commentRss/36076.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/carob/services/trackbacks/36076.html</trackback:ping><description><![CDATA[
		<p>         SWT已经提供了对部分平台（比如window）上的系统托盘的支持。但支持得还不够好，我最近需要在一个聊天工具实现Balloon效果(粘附于系统托盘上的一个消息气泡效果，在IM软件中普遍被支持)，查一下SWT API,到目前为上并没有提供支持。但一个好消息是在月底交要出来的3.2M6中，将对部分API做调整，增加对Balloon的支持。<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">Milestone Plan </span>
				<span style="COLOR: #000000">3.2</span>
				<span style="COLOR: #000000"> M6 March </span>
				<span style="COLOR: #000000">31</span>
				<span style="COLOR: #000000">, </span>
				<span style="COLOR: #000000">2006</span>
				<span style="COLOR: #000000">  <br /><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /> Implement custom draw </span>
				<span style="COLOR: #0000ff">for</span>
				<span style="COLOR: #000000"> table and tree <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Implement </span>
				<span style="COLOR: #0000ff">native</span>
				<span style="COLOR: #000000"> drag source effects </span>
				<span style="COLOR: #0000ff">for</span>
				<span style="COLOR: #000000"> cursor <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Implement ImageTransfer support <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><strong><font style="BACKGROUND-COLOR: #ff0000" size="4">Implement Balloon tooltips</font></strong> <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />Implement Accessibility on Mac OS X </span>
		</div>
		<br />     这儿是EclipseZone上的一个针对这一效果的文章：TrayIcons and ToolTips  <a href="http://www.eclipsezone.com/eclipse/forums/t66093.rhtml">http://www.eclipsezone.com/eclipse/forums/t66093.rhtml</a><br /><br /><br />甚至在官方网站上，已经提供了这一个API的Snippet<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: #008000">//</span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet225.java</span><span style="COLOR: #008000"><br /><img id="Codehighlighter1_128_667_Open_Image" onclick="this.style.display='none'; Codehighlighter1_128_667_Open_Text.style.display='none'; Codehighlighter1_128_667_Closed_Image.style.display='inline'; Codehighlighter1_128_667_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_128_667_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_128_667_Closed_Text.style.display='none'; Codehighlighter1_128_667_Open_Image.style.display='inline'; Codehighlighter1_128_667_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_128_667_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">/** */</span><span id="Codehighlighter1_128_667_Open_Text"><span style="COLOR: #008000">/**</span><span style="COLOR: #008000">*****************************************************************************<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Copyright (c) 2000, 2006 IBM Corporation and others.<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * All rights reserved. This program and the accompanying materials<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * are made available under the terms of the Eclipse Public License v1.0<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * which accompanies this distribution, and is available at<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.eclipse.org/legal/epl-v10.html</span><span style="COLOR: #008000"><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" /> * Contributors:<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> *     IBM Corporation - initial API and implementation<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> ******************************************************************************</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">package</span><span style="COLOR: #000000"> org.eclipse.swt.snippets;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />  <br /><img id="Codehighlighter1_706_887_Open_Image" onclick="this.style.display='none'; Codehighlighter1_706_887_Open_Text.style.display='none'; Codehighlighter1_706_887_Closed_Image.style.display='inline'; Codehighlighter1_706_887_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_706_887_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_706_887_Closed_Text.style.display='none'; Codehighlighter1_706_887_Open_Image.style.display='inline'; Codehighlighter1_706_887_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_706_887_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">/**/</span><span id="Codehighlighter1_706_887_Open_Text"><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * Tooltip example snippet: create a balloon tooltip for a tray item<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" /> * For a list of all SWT example snippets see<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /> * </span><span style="COLOR: #008000; TEXT-DECORATION: underline">http://www.eclipse.org/swt/snippets/</span><span style="COLOR: #008000"><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" /> * @since 3.0<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /> </span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> org.eclipse.swt.</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: #0000ff">import</span><span style="COLOR: #000000"> org.eclipse.swt.graphics.</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: #0000ff">import</span><span style="COLOR: #000000"> org.eclipse.swt.widgets.</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br /><img id="Codehighlighter1_1009_2167_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1009_2167_Open_Text.style.display='none'; Codehighlighter1_1009_2167_Closed_Image.style.display='inline'; Codehighlighter1_1009_2167_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_1009_2167_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1009_2167_Closed_Text.style.display='none'; Codehighlighter1_1009_2167_Open_Image.style.display='inline'; Codehighlighter1_1009_2167_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"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Snippet225 </span><span id="Codehighlighter1_1009_2167_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_1009_2167_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br /><img id="Codehighlighter1_1051_2165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1051_2165_Open_Text.style.display='none'; Codehighlighter1_1051_2165_Closed_Image.style.display='inline'; Codehighlighter1_1051_2165_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1051_2165_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1051_2165_Closed_Text.style.display='none'; Codehighlighter1_1051_2165_Open_Image.style.display='inline'; Codehighlighter1_1051_2165_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> main(String[] args) </span><span id="Codehighlighter1_1051_2165_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_1051_2165_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Display display </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Display();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Shell shell </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Shell(display);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Image image </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">final</span><span style="COLOR: #000000"> ToolTip tip </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> ToolTip(shell, SWT.BALLOON </span><span style="COLOR: #000000">|</span><span style="COLOR: #000000"> SWT.ICON_INFORMATION);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    tip.setMessage(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Here is message for the user. When the message is too long it wraps. I should say something cool but nothing comes to my mind.</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Tray tray </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> display.getSystemTray();<br /><img id="Codehighlighter1_1424_1654_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1424_1654_Open_Text.style.display='none'; Codehighlighter1_1424_1654_Closed_Image.style.display='inline'; Codehighlighter1_1424_1654_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1424_1654_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1424_1654_Closed_Text.style.display='none'; Codehighlighter1_1424_1654_Open_Image.style.display='inline'; Codehighlighter1_1424_1654_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (tray </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) </span><span id="Codehighlighter1_1424_1654_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_1424_1654_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        TrayItem item </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> TrayItem(tray, SWT.NONE);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        image </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Image(display, Snippet225.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">.getResourceAsStream(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">eclipse.png</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">));<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        item.setImage(image);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        tip.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Notification from a tray item</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        item.setToolTip(tip);<br /><img id="Codehighlighter1_1661_1738_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1661_1738_Open_Text.style.display='none'; Codehighlighter1_1661_1738_Closed_Image.style.display='inline'; Codehighlighter1_1661_1738_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1661_1738_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1661_1738_Closed_Text.style.display='none'; Codehighlighter1_1661_1738_Open_Image.style.display='inline'; Codehighlighter1_1661_1738_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    }</span></span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span id="Codehighlighter1_1661_1738_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_1661_1738_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        tip.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Notification from anywhere</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        tip.setLocation(</span><span style="COLOR: #000000">400</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">400</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    Button button </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Button (shell, SWT.PUSH);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    button.setText(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Press for balloon tip</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br /><img id="Codehighlighter1_1879_1952_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1879_1952_Open_Text.style.display='none'; Codehighlighter1_1879_1952_Closed_Image.style.display='inline'; Codehighlighter1_1879_1952_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1879_1952_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1879_1952_Closed_Text.style.display='none'; Codehighlighter1_1879_1952_Open_Image.style.display='inline'; Codehighlighter1_1879_1952_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    button.addListener(SWT.Selection, </span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> Listener() </span><span id="Codehighlighter1_1879_1952_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_1879_1952_Open_Text"><span style="COLOR: #000000">{<br /><img id="Codehighlighter1_1920_1949_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1920_1949_Open_Text.style.display='none'; Codehighlighter1_1920_1949_Closed_Image.style.display='inline'; Codehighlighter1_1920_1949_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1920_1949_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1920_1949_Closed_Text.style.display='none'; Codehighlighter1_1920_1949_Open_Image.style.display='inline'; Codehighlighter1_1920_1949_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> handleEvent(Event event) </span><span id="Codehighlighter1_1920_1949_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_1920_1949_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />            tip.setVisible(</span><span style="COLOR: #0000ff">true</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />        }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    button.pack();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    shell.setBounds(</span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">50</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">300</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">200</span><span style="COLOR: #000000">);<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    shell.open();<br /><img id="Codehighlighter1_2052_2106_Open_Image" onclick="this.style.display='none'; Codehighlighter1_2052_2106_Open_Text.style.display='none'; Codehighlighter1_2052_2106_Closed_Image.style.display='inline'; Codehighlighter1_2052_2106_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_2052_2106_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_2052_2106_Closed_Text.style.display='none'; Codehighlighter1_2052_2106_Open_Image.style.display='inline'; Codehighlighter1_2052_2106_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">shell.isDisposed()) </span><span id="Codehighlighter1_2052_2106_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_2052_2106_Open_Text"><span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">display.readAndDispatch()) display.sleep();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> (image </span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">) image.dispose();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />    display.dispose();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</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><p>除此之外，也有其它的第三方API实现了此一效果。是由<a href="http://www.novocode.com/">www.novocode.com</a>提供的BalloonWindow。其API可在上述的网站中获得。</p><img src ="http://www.blogjava.net/carob/aggbug/36076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/carob/" target="_blank">carob</a> 2006-03-19 16:36 <a href="http://www.blogjava.net/carob/archive/2006/03/19/36076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>