﻿<?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-Java Me Games</title><link>http://www.blogjava.net/cnjmgs/</link><description>Java, Me, and Games.</description><language>zh-cn</language><lastBuildDate>Wed, 06 May 2026 00:02:42 GMT</lastBuildDate><pubDate>Wed, 06 May 2026 00:02:42 GMT</pubDate><ttl>60</ttl><item><title>[娱乐]小猪盖房子</title><link>http://www.blogjava.net/cnjmgs/archive/2008/11/20/241655.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Thu, 20 Nov 2008 07:13:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2008/11/20/241655.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/241655.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2008/11/20/241655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/241655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/241655.html</trackback:ping><description><![CDATA[<p><a href="http://www.amazon.cn/dp/zhbk007347" target="_blank"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" height="204" alt="image" src="http://www.blogjava.net/images/blogjava_net/cnjmgs/WindowsLiveWriter/207d777e1225_7FBC/image_5.png" width="204" align="left" border="0"></a> </p> <p>猪通过勤劳致富有5元钱存在老鼠开的钱庄里。猪打算拿这5元钱建一个小窝，大概要花2元卖地，花3元搭窝。</p> <p>王八是搞工程的，他想在猪身上挣更多的钱，于是找来当投资顾问的狐狸想办法，狐狸说：这好办。于是找来管地盘的狼，开钱庄的老鼠一起来商议，结果王八从老鼠那里借来200元，用100元卖了狼的地，花了3元把猪窝盖好，花了50元给了狐狸咨询服务费，猪没有地，只好求王八把窝卖给它，王八要价500元，老猪说只有5元买不起，这时候狐狸说服猪去向老鼠借钱，老鼠答应借500给猪，前提是要他连本带利还600元，可以分10年还清，并且产权证拿来抵押。</p> <p>结果成交。猪到最后花了600元买来了猪窝，比他原来的计划高了11倍，猪努力了十年去挣钱还贷。</p> <p>在这场交易里面，狼，老鼠，狐狸还有王八都挣了钱。以后他们就如法炮制。更多的猪去贷款买房子了，这时候，当商人的驴看到有机可乘，到老鼠那里贷了好多好多的款，把王八盖的房子都买下来，然后以更高的价格卖给了猪。</p> <p>猪的还贷期就越来越长，吃的越来越差，小猪崽子也不敢生了。由于猪的数目越来越少，狼觉得这样下去自己没有猪肉吃了，非饿死不可，于是开始调控，不让老鼠再借钱了。但是王八还没有停止盖房，把自己挣的钱和贷的钱全投入生产了。驴手上的猪窝囤积的很多，卖不动了被套牢了。</p> <p>结果，老鼠，王八，还有驴都挣了好多的猪窝。钱到最后集中到狼手上。如今，谁都等着狼把钱拿出来救命。聪明的你，如果你是狼，你会拿钱救哪个？</p><img src ="http://www.blogjava.net/cnjmgs/aggbug/241655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2008-11-20 15:13 <a href="http://www.blogjava.net/cnjmgs/archive/2008/11/20/241655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>路由器如何工作-路由表</title><link>http://www.blogjava.net/cnjmgs/archive/2007/03/08/102591.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Thu, 08 Mar 2007 06:32:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/03/08/102591.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/102591.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/03/08/102591.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/102591.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/102591.html</trackback:ping><description><![CDATA[
<p>以前对于路由器总是似懂非懂的，今天花了点时间看看，在这里做一个记录。[摘自tcp/ip详解]</p>
<p><a href="http://www.blogjava.net/cnjmgs/network.JPG" rel="lightbox" title="network.JPG"><img src="http://www.blogjava.net/cnjmgs/network_tn.jpg" style="DISPLAY: inline; FLOAT: left; WIDTH: 200px; HEIGHT: 130px" title="network.JPG" height="130" width="200" alt="network.JPG" border="0" id="urn:zoundry:jid:network.JPG"/></a></p>
<br/><p>基本的网络环境</p>
<p><br/><br/></p>
<p><a href="http://www.blogjava.net/cnjmgs/3-4.JPG" rel="lightbox" title="3-4.JPG"><img src="http://www.blogjava.net/cnjmgs/3-4_tn.jpg" style="DISPLAY: inline; FLOAT: left; WIDTH: 242px; HEIGHT: 129px" title="3-4.JPG" height="129" width="242" alt="3-4.JPG" border="0" id="urn:zoundry:jid:3-4.JPG"/></a>包如何在网络上转发</p>
<p>参看tcp/ip协议详解第三章<br/></p>
<br/><br/><p>路由表<br/><a href="http://www.blogjava.net/cnjmgs/router-table-at-srv4.JPG" rel="lightbox" title="router-table-at-srv4.JPG"><img src="http://www.blogjava.net/cnjmgs/router-table-at-srv4_tn.jpg" title="router-table-at-srv4.JPG" height="35" width="200" alt="router-table-at-srv4.JPG" border="0" id="urn:zoundry:jid:router-table-at-srv4.JPG"/></a>srv4的路由表，详细参考tcp/ip协议详解第10章</p>
<p><a href="http://www.blogjava.net/cnjmgs/router-table-at-sun.JPG" rel="lightbox" title="router-table-at-sun.JPG"><img src="http://www.blogjava.net/cnjmgs/router-table-at-sun_tn.jpg" title="router-table-at-sun.JPG" height="40" width="200" alt="router-table-at-sun.JPG" border="0" id="urn:zoundry:jid:router-table-at-sun.JPG"/></a>sun的路由表，详细参考tcp/ip协议详解第10章</p>
<blockquote>
<p><strong>关于路由表的说明<br/></strong>对于一个给定的路由器，可以打印出五种不同的标志（ f l a g）：<br/>U 该路由可以使用。<br/>G 该路由是到一个网关（路由器）。如果没有设置该标志，说明目的地是直接相连的。<br/>H 该路由是到一个主机，也就是说，目的地址是一个完整的主机地址。如果没有设置该<br/>标志，说明该路由是到一个网络，而目的地址是一个网络地址：一个网络号，或者网<br/>络号与子网号的组合。<br/>D 该路由是由重定向报文创建的（ 9 . 5节）。<br/>M 该路由已被重定向报文修改（ 9 . 5节）。</p>
</blockquote>
<p><br/>路由表的搜索</p>
<blockquote>
<p>1) 搜索匹配的主机地址；<br/>2) 搜索匹配的网络地址；<br/>3) 搜索默认表项（默认表项一般在路由表中被指定为一个网络表项，其网络号为0）。<br/>匹配主机地址步骤始终发生在匹配网络地址步骤之前。</p>
</blockquote>
<p><br/>关键的说明，需要仔细理解，可以多看几遍</p>
<blockquote>
<p>标志G是非常重要的，因为由它区分了间接路由和直接路由（对于直接路由来说是不设置标志G的）。其区别在于，发往直接路由的分组中不但具有指明目的端的I P地址，还具有其链路层地址（见图3 - 3）。当分组被发往一个间接路由时， I P地址指明的是最终的目的地，但是链路层地址指明的是网关（即下一站路由器）。我们在图3 - 4已看到这样的例子。在这个路由表例子中，有一个间接路由（设置了标志G），因此采用这一项路由的分组其I P地址是最终的目的地（1 4 0 . 2 5 2 . 1 3 . 6 5），但是其链路层地址必须对应于路由器1 4 0 . 2 5 2 . 1 3 . 3 5。<br/>理解G和H标志之间的区别是很重要的。G标志区分了直接路由和间接路由，如上所述。但是H标志表明，目的地址（ n e t s t a t命令输出第一行）是一个完整的主机地址。没有设置H标志说明目的地址是一个网络地址（主机号部分为0）。当为某个目的I P地址搜索路由表时，主机地址项必须与目的地址完全匹配，而网络地址项只需要匹配目的地址的网络号和子网号就可以了。另外，大多数版本的n e t s t a t命令首先打印出所有的主机路由表项，然后才是网络路由表项。</p>
</blockquote>
<p>不理解的一个问题</p>
<p>在sun的路由表上为什么会有140.252.1.183 140.252.1.29 uh 0 0 sl0这么一条路由，它什么时候有用呢？</p>
<img src ="http://www.blogjava.net/cnjmgs/aggbug/102591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-03-08 14:32 <a href="http://www.blogjava.net/cnjmgs/archive/2007/03/08/102591.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>李商隐-无题</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/11/93294.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Thu, 11 Jan 2007 15:28:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/11/93294.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/93294.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/11/93294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/93294.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/93294.html</trackback:ping><description><![CDATA[
<p style="TEXT-ALIGN: center">昨夜星辰昨夜风，画楼西畔桂堂东。<br/>身无彩凤双飞翼，心有灵犀一点通。<br/>隔座送钩春酒暖，分曹射覆蜡灯红。<br/>嗟余听鼓应官去，走马兰台类转蓬。</p>
<img src ="http://www.blogjava.net/cnjmgs/aggbug/93294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-11 23:28 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/11/93294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Being a better Programmer</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/10/92818.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Wed, 10 Jan 2007 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/10/92818.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/92818.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/10/92818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/92818.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/92818.html</trackback:ping><description><![CDATA[
		<blockquote>
				<p>Being a better programmer means being able to design more effective and trustworthy programs and knowing how to do that efficiently.</p>
				<p>做更好的程序员意味着能够设计更高效的、可靠的程序，和知道如何高效的实现这一目标。</p>
				<p>看到这句话有点意思，effictive,trustworthy,就是程序所要追求的目标。</p>
		</blockquote>
<img src ="http://www.blogjava.net/cnjmgs/aggbug/92818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-10 09:47 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/10/92818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用GWT(GoogleWebToolkit)开发Ajax-HelloWorld</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92144.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Fri, 05 Jan 2007 19:30:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92144.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/92144.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92144.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/92144.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/92144.html</trackback:ping><description><![CDATA[
<table border="1" class="wikitable">
<tbody>
<tr class="odd">
<td><strong>摘要:</strong></td>
<td><em>本文介绍用GWT(Google Web Toolkit)开发第一个Ajax应用。应用效果，将在应用页面显示一个按钮，点击时候显示"HelloWorld"</em></td>
</tr>
<tr>
<td><strong>关键字:</strong></td>
<td><em>GWT Google Web Toolkit Ajax 入门应用</em></td>
</tr>
</tbody>
</table>
<h3 id="section-_E7_94_A8GWTGoogleWebToolkit_E5_BC_80_E5_8F_91AjaxHelloWorld-_E7_8E_AF_E5_A2_83_E5_87_86_E5_A4_87">环境准备</h3>
<ul>
<li>eclipse</li>
<li>google web toolkit</li>
<li>tomcat_5.0.28</li>
<li>以上3者均可通过google搜索方便下载到，安装配置不再详细介绍</li>
</ul>
<h3 id="section-_E7_94_A8GWTGoogleWebToolkit_E5_BC_80_E5_8F_91AjaxHelloWorld-_E5_AE_9E_E7_8E_B0_E8_BF_87_E7_A8_8B">实现过程</h3>
1、创建应用<br/>创建一个gwt项目的目录，我的就是在d:\gwt_test\helloworld<br/>用gwt的applicationCreator.bat(该批处理文件在gwt安装目录下可以看到)创建应用：<br/><tt>applicationCreator.cmd org.jmg.client.HelloWorld</tt><br/>成功执行输出：<br/>Created directory D:\gwttest\helloworld\src（这个目录包含自动创建的java文件)<br/>Created directory D:\gwttest\helloworld\src\org\jmg<br/>Created directory D:\gwttest\helloworld\src\org\jmg\client<br/>Created directory D:\gwttest\helloworld\src\org\jmg\public<br/>Created file D:\gwttest\helloworld\src\org\jmg\HelloWorld.gwt.xml<br/>Created file D:\gwttest\helloworld\src\org\jmg\public\HelloWorld.html<br/>Created file D:\gwttest\helloworld\src\org\jmg\client\HelloWorld.java<br/>Created file D:\gwttest\helloworld\HelloWorld-shell.cmd(这个命令将会调用gwt内置的服务器来运行应用）<br/>Created file D:\gwttest\helloworld\HelloWorld-compile.cmd（编译应用，把前边的java文件编译成javascript代码，和其他的附加文件，注意，他不会编译server端文件）<br/><br/>2、编译输出:<br/>执行helloworld下的HelloWorld-compile.cmd<br/>Output will be written into D:\gwttest\helloworld\www\org.jmg.HelloWorld(默认的，gwt会把客户端代码文件放到一个名字为完整的应用名称的目录）<br/>Copying all files found on public path<br/>Compilation succeeded<br/>编译成功。<br/><br/>3、准备tomcat:<br/>在tomcat安装目录下webapps目录创建一个gwt文件夹<br/>相应的创建其他的web应用的文件和文件夹：<br/>gwt\WEB-INF<br/>gwt\WEB-INF\classes<br/>gwt\WEB-INF\lib<br/>gwt\WEB-INF\web.xml<br/>web.xml内容如下： &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app&gt; &lt;/web-app&gt;<br/><br/>4、部署到tomcat:<br/>在gwt目录创建helloword目录<br/>复制刚才执行HelloWorld-compile.cmd生成的文件（在www\org.jmg.HelloWorld目录）到helloworld目录下，注意，只要这个文件夹中的文件，不要文件夹。<br/><br/>5、运行看效果：<br/>启动tomcat<br/>访问http://localhost:8080/gwt/helloworld/HelloWorld.html<br/>页面上将会显示<br/>一个标题，一段说明文字,和一个Click Me按钮<br/>点击按钮将会显示 "HelloWorld"文字<br/><br/><table border="1" class="wikitable">
<tbody>
<tr class="odd">
<td><strong>参考:</strong></td>
<td><em><a href="http://code.google.com/webtoolkit/documentation/examples/helloworld/" class="external">GWT Google Web Toolkit Hello World Example Project</a> <img width="28" height="32" class="outlink" src="http://localhost:8080/wiki/images/out.png"/></em></td>
</tr>
<tr>
<td><strong>更多文章:</strong></td>
</tr>
</tbody>
</table>
<br/><br/><img src ="http://www.blogjava.net/cnjmgs/aggbug/92144.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-06 03:30 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/06/92144.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用GWT(Google Web Toolkit)开发Ajax-图片浏览</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92143.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Fri, 05 Jan 2007 19:29:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92143.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/92143.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/92143.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/92143.html</trackback:ping><description><![CDATA[
<strong>用GWT(Google Web Toolkit)开发Ajax-图片浏览</strong><br/><table border="1" class="wikitable">
<tbody>
<tr class="odd">
<td>摘要</td>
<td>从本文开始我们开始一个有点实际意义的应用，图片浏览器，初步我们只实现简单的框架来实现图片浏览的基本功能，然后再继续深化，做出更好的界面，和更多的管理功能。</td>
</tr>
<tr>
<td>关键字</td>
<td>Google Web Toolkit GWT Ajax 图片浏览</td>
</tr>
</tbody>
</table>
<h3 id="section-_E7_94_A8GWTGoogleWebToolkit_E5_BC_80_E5_8F_91Ajax_E5_9B_BE_E7_89_87_E6_B5_8F_E8_A7_88-_E7_AE_80_E5_8D_95_E8_AE_BE_E8_AE_A1">简单设计</h3>
设想一下简单的界面效果，和已经实现这个效果需要的提供的数据服务。<br/>打开画图版，简单的画一下界面。<br/><table border="0" class="imageplugin">
<caption align="bottom">图片浏览</caption>
<tbody>
<tr>
<td><img width="294" height="216" src="http://blog.matrix.org.cn/resources/lucumu/1.JPG"/></td>
</tr>
</tbody>
</table>
<strong>界面说明</strong><br/><ul>
<li>最顶上一个横向的标题栏</li>
<li>中间左边一个是小的预览图片列表</li>
<li>中间右边是图片浏览主窗口</li>
<li>最底部有一个简单的版权之类的说明</li>
</ul>
<strong>数据服务</strong>
<ul>
<li>一保存图片信息的数据结构</li>
<li>一个能获取指定要求的图片的集合的服务</li>
</ul>
<h3 id="section-_E7_94_A8GWTGoogleWebToolkit_E5_BC_80_E5_8F_91Ajax_E5_9B_BE_E7_89_87_E6_B5_8F_E8_A7_88-_E5_AE_9E_E7_8E_B0_E8_BF_87_E7_A8_8B">实现过程</h3>
<strong>创建界面</strong><br/>页面构成，参看已经设计的界面，从外往内一个一个结构，把界面分成上中下三个面板，其中第二块分割成左右两个面板。这样不难得到这样的结果，在onModuleLoad方法中添加实现一下功能的代码:<br/><pre xml:space="preserve">
VerticalPanel mainPanel;//主面板<br/>HorizontalPanel topPart;//顶端部分<br/>HorizontalPanel centerPart;//中间部分<br/>HorizontalPanel bottomPart;//底端部分<br/>HorizontalPanel imagesPart;//图片列表<br/>HorizontalPanel previewPart;//图片预览<br/>//按照以下安装过程组装<br/>mainPanel.add(topPart);<br/>mainPanel.add(centerPart);<br/>mainPanel.add(bottomPart);<br/>centerPart.add(imagesPart);<br/>centerPart.add(previewPart);<br/></pre>
注意可能我们的图片会很多,希望不会把页面撑得很长很长,GWT提供了不过的ScrollPanel，只要把 <em>centerPart.add(imagesPart);</em>修改成<em>centerPart.add(new ScrollPanel(imagesPart));</em>就可以了。<br/>同样图片也可能会很大，也一样在previewPart上添加一个滚动面板。<br/><p><strong>图片服务实现</strong><br/></p>
<ol>
<li>一个保存图片数据的数据结构，简单点，创建一个org.jmg.client.ImageData implements IsSerializable，这个类中只有两个属性，title,url，这两个属性已经很好的表明他们的用途了，不再细说。至于getter, setter,我只提供了get,初始化用构造函数传参，你也可以根据自己习惯修改。个人原则，能不提供的方法尽量不提供。需要注意一点很重要，这个类一定要实现com.google.gwt.user.client.rpc.IsSerializable这个标志接口，这个会在编译的时候生成相应的 javascript的对象，用户在客户端运行。<br/></li>
<li>创建服务,在client包中写ImageServiceAsync，ImageService,这两个接口，在server中实现 ImageServiceImpl implements ImageService。ImageServiceImpl，所需提供的方法就是获取图片列表，返回一个ImageData数组或是集合类，都可以，我这里选择了数组。<br/></li>
</ol>
<p><strong>添加客户端事件</strong><br/>有了界面，有了服务，就可以把这两个东西组装在一起了。我们需要两个事件处理，第一个是在客户端刚刚打开的时候，在"创建界面"小节中我们已经在 onModuleLoad添加了界面大致框架的初始化，现在我们要调用服务，并且把获取到的数据，构造成 com.google.gwt.user.client.ui.Image对象，添加到imagesPart中，代码大致如下：</p>
<pre xml:space="preserve">
async.getImageData(new AsyncCallback() {<br/>      public void onFailure(Throwable caught) {<br/>      }<br/>      public void onSuccess(Object result) {<br/>        ImageData[] images = (ImageData[]) result;<br/>        for (int i = 0; i &lt; images.length; i++) {<br/>          Image image = new Image(images[i].getUrl());//根据url构造image对象<br/>          image.setPixelSize(120, 120);//限制预览图片的大小          <br/>          imagesPart.add(image);//添加到imagesPart中<br/>        }<br/>      }<br/>    });<br/></pre>
到这里你编译部署的时候就已经可以看到大致的运行效果了。左边是一个小图片的列表，右边是一块空白的区域。<br/>到现在剩下的事情就是需要在小图上添加一个鼠标事件，在鼠标移上去的时候，右边显示大图。<br/>这个过程也很简单，就像写swing程序一样，只要在上边的Image对象构造好的时候添加一个mouseListener就可以了:
<pre xml:space="preserve">
image.addMouseListener(new MouseListenerAdapter() {<br/>            public void onMouseEnter(Widget sender) {<br/>              sender.addStyleName("selected");<br/>              previewPart.clear();<br/>              Image img = new Image(((Image)sender).getUrl());<br/>              //注意这里的Image需要创建一个，而不是sender强换型，<br/>              //最初的时候我就是为了节省一个对象，强换型了一次，<br/>              //至于效果你可以自己动手改改试试看<br/>              img.addStyleName("big");<br/>              previewPart.add(img);<br/>            }<br/>            public void onMouseLeave(Widget sender) {<br/>              sender.removeStyleName("selected");<br/>            }<br/>          });<br/></pre>
<p><strong>运行部署</strong> 到这里我们的图片浏览器就基本完成了，至于样式表之类的东西就不在这里说了。不说不是表示不重要，GWT推荐所有东西都用样式表来控制，而是很重要。这里我截了一个简单的图，仅作运行效果:</p>
<table border="0" class="imageplugin">
<caption align="bottom">运行图例</caption>
<tbody>
<tr>
<td><img width="662" height="615" src="http://blog.matrix.org.cn/resources/lucumu/imageview.jpg"/></td>
</tr>
</tbody>
</table>
<p>源码下载:<a href="http://blog.matrix.org.cn/resources/lucumu/imageviewer_src.rar">imageviewer_src.rar</a><br/>运用下载:<a href="http://blog.matrix.org.cn/resources/lucumu/imageviewer.rar">imageviewer.rar</a><br/></p>
<br/><table border="1" class="wikitable">
<tbody>
<tr class="odd">
<td>参考</td>
<td><br/></td>
</tr>
<tr>
<td>更多文章</td>
<td><br/></td>
</tr>
</tbody>
</table>
<img src ="http://www.blogjava.net/cnjmgs/aggbug/92143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-06 03:29 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/06/92143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>J2Me 的属性文件</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92142.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Fri, 05 Jan 2007 19:27:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92142.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/92142.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92142.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/92142.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/92142.html</trackback:ping><description><![CDATA[
<p>通常一个MIDlet程序有两个运行时属性，系统的和程序的(system and application)。这些属性都只能读取，不能修改。</p>
<p>系统属性</p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p>系统的属性一般是由设备定义的。在各个jsr标准中定义了一些系统属性的键值(key)。<a href="#1">附1</a>的表格就列出了当前的一些已经定义的系统属性名。</p>
<p>读取方法：System.getProperty() ，这是一个静态方法</p>
</blockquote>
<p dir="ltr">程序属性</p>
<blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
<p dir="ltr">程序属性是在程序的描述文件中和jar包的manifest文件中定义。<a href="#2">附2</a>中就就是一个典型的描述文件。假如同样的属性在描述文件中和manifest文件中都被定义了，冲突会这样被处理：假如MIDlet是一个MIDP2.0的可信任的程序,系统会直接拒绝安装程序。否则，程序描述文件中定义的值会覆盖manifest中定义的属性。(If the MIDlet is a trusted application based on MIDP 2.0, the system simply won't install the application. Otherwise, the value in the descriptor overrides the value in the manifest.)</p>
<p dir="ltr">读取方法：<span style="FONT-FAMILY: Courier New">MIDlet.getAppProperty()</span>，这是一个实例方法</p>
<p dir="ltr">注意：1、这些属性的名称是区分大小写的。2、假如获取一个没有定义过的名称，会返回一个null值。3、不要定义太多的属性，有些设备上的描述大小是有限制的。</p>
</blockquote>
<p>原文参看：<a href="http://developers.sun.com/techtopics/mobility/midp/ttips/appproperty/index.html">http://developers.sun.com/techtopics/mobility/midp/ttips/appproperty/index.html</a></p>
<p><strong><a name="1">附1：</a><br/>J2ME Defined System Properties</strong></p>
<table bordercolor="#AAAAAA" width="500" cellspacing="0" border="1" cellpadding="4">
<tbody>
<tr>
<th align="left">JSR</th>
<th align="left">Property Name<br/></th>
<th align="left">Default Value¹</th>
</tr>
<tr>
<td>30</td>
<td>microedition.platform</td>
<td>null</td>
</tr>
<tr>
<td/>
<td>microedition.encoding</td>
<td>ISO8859_1</td>
</tr>
<tr>
<td/>
<td>microedition.configuration</td>
<td>CLDC-1.0</td>
</tr>
<tr>
<td/>
<td>microedition.profiles</td>
<td>null</td>
</tr>
<tr>
<td>37</td>
<td>microedition.locale</td>
<td>null</td>
</tr>
<tr>
<td/>
<td>microedition.profiles</td>
<td>MIDP-1.0</td>
</tr>
<tr>
<td>75</td>
<td>microedition.io.file.FileConnection.version</td>
<td>1.0</td>
</tr>
<tr>
<td/>
<td>file.separator</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td/>
<td>microedition.pim.version</td>
<td>1.0</td>
</tr>
<tr>
<td>118</td>
<td>microedition.locale</td>
<td>null</td>
</tr>
<tr>
<td/>
<td>microedition.profiles</td>
<td>MIDP-2.0</td>
</tr>
<tr>
<td/>
<td>microedition.commports</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td/>
<td>microedition.hostname</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td>120</td>
<td>wireless.messaging.sms.smsc</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td>139</td>
<td>microedition.platform</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td/>
<td>microedition.encoding</td>
<td>ISO8859-1</td>
</tr>
<tr>
<td/>
<td>microedition.configuration</td>
<td>CLDC-1.1</td>
</tr>
<tr>
<td/>
<td>microedition.profiles</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td>177</td>
<td>microedition.smartcardslots</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td>179</td>
<td>microedition.location.version</td>
<td>1.0</td>
</tr>
<tr>
<td>180</td>
<td>microedition.sip.version</td>
<td>1.0</td>
</tr>
<tr>
<td>184</td>
<td>microedition.m3g.version</td>
<td>1.0</td>
</tr>
<tr>
<td>185</td>
<td>microedition.jtwi.version</td>
<td>1.0</td>
</tr>
<tr>
<td>195</td>
<td>microedition.locale</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td/>
<td>microedition.profiles</td>
<td>IMP-1.0</td>
</tr>
<tr>
<td>205</td>
<td>wireless.messaging.sms.smsc</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td>205</td>
<td>wireless.messaging.mms.mmsc</td>
<td>(impl-dep)</td>
</tr>
<tr>
<td>211</td>
<td>CHAPI-Version</td>
<td>1.0</td>
</tr>
</tbody>
</table>
<p><strong><a name="2">附2</a></strong><br/>MIDlet-1: HttpWrapperMidlet,,httpwrapper.HttpWrapperMIDlet<br/>MIDlet-Jar-Size: 16315<br/>MIDlet-Jar-URL: HttpWrapper.jar<br/>MIDlet-Name: HttpWrapper<br/>MIDlet-Vendor: Vendor<br/>MIDlet-Version: 1.0<br/>MicroEdition-Configuration: CLDC-1.0<br/>MicroEdition-Profile: MIDP-1.0<br/>Which-Locale: en<br/><br/></p>

<img src ="http://www.blogjava.net/cnjmgs/aggbug/92142.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-06 03:27 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/06/92142.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GWT里面的CSS样式单</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92141.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Fri, 05 Jan 2007 19:00:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92141.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/92141.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/06/92141.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/92141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/92141.html</trackback:ping><description><![CDATA[
		<p>在GWT的文档里说，大致上CSS的命名规则是这样的"[project]-[widget]，比如gwt-Button，你可以在CSS里定义如下：<br />.gwt-Button{font-size:150%;}<br />但是这样的说明是不充分的，所以这里有必要把他真正的样式表来列一下，以供查看。</p>
		<p>
				<strong>AbsolutePanel<br /></strong> 用一个DIV来实现，默认的设置了overflow:hidden。这个DIV里边的内容可以用一个x,y坐标来确定位置。<br /><code>&lt;div style="overflow: hidden;"&gt;&lt;/div&gt;</code></p>
		<p>
				<code>
						<strong>Botton<br /></strong> 就是一个正常的HTML的Button.默认的样式名字是gwt-Button.<br />&lt;button class="gwt-Button"/&gt;</code>
		</p>
		<p>
				<code>
						<strong>CellPanel</strong>
						<br />用一个table来实现，没有默认的样式，可以设置border,cell-spacing属性。<br />&lt;table&gt;&lt;/table&gt;</code>
		</p>
		<p>
				<code>
						<strong>CheckBox</strong>
						<br />就是正常的Html的CheckBox，默认的样式名字为gwt-CheckBox，会自动生成一个不重复的id，checkN(N是一个整数)，可以使用checked,defaultChecked,disabled等属性。默认样式是空的。<br />&lt;checkbox class="gwt-CheckBox"&gt;</code>
		</p>
		<p>
				<code>
						<strong>DeckPanel</strong>
						<br />用一个DIV来实现，包含了一系列的子对象。每一个对象可以用单独的display属性来设置是否显示。这个有点像Swing里面的CardLayout的方式有点像，添加了一系列的组件，但是只能显示一个。<br /></code> &lt;div style="width: 100%; height: 100%"&gt;&lt;/div&gt;</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>DialogBox</strong>
						<br />缺省的样式有gwt-DialogBox，Caption两个都是相关。用一个DIV来实现，标题Caption也是一个DIV。<br />&lt;div class="gwt-DialogBox"&gt;<br />　&lt;table cell-spacin="0" cell-padding="0"&gt;<br />　　&lt;tbody&gt;<br />　　　&lt;tr&gt;&lt;td&gt;&lt;div class="Caption"&gt;Caption&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;<br />　　　&lt;tr&gt;&lt;td&gt;Content&lt;/td&gt;&lt;/tr&gt;<br />　　&lt;/tbody&gt;<br />　&lt;/table&gt;<br />&lt;/div&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>DockPanel</strong>
						<br />用一个Table来实现，cell-spacin,cell-padding都默认为0，为了实现DockPanel里边的tr,td比较麻烦一些。<br />&lt;table cell-spacing="0" cell-padding="0"&gt;<br />　&lt;tbody&gt;&lt;/tbody&gt;<br />&lt;/table&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>FlexTable</strong>
						<br />只是一个简单的Table，没什么特别的东西。<br />&lt;table&gt;<br />　&lt;tbody&gt;&lt;/tbody&gt;<br />&lt;/table&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>FlowPanel</strong>
						<br />用一个DIV来实现，设定里display属性为inline。<br />&lt;div style="display:inline;"&gt;content&lt;/div&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>FocusPanel<br /></strong> 只是一个DIV，重要的是它声明了focusevents,keyevents,onclick和mouseevents，对对于那些没有声明的这些事件"子组件"很有用处。<br />&lt;div&gt;content&lt;div&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>FocusWidget</strong>
						<br />可以是任何组件，只是它可以帮助捕获Focusevents,keyevents。</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>Frame</strong>
						<br />是一个IFrame,他的默认的样式是gwt-Frame<br />&lt;iframe&gt;&lt;/iframe&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>Grid</strong>
						<br />就是一个Table<br />&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>HTML</strong>
						<br />一个DIV，默认的样式是gwt-HTML，可以设定属性white-space为normal,nowrap。</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>HTMLPanel</strong>
						<br />就是一个DIV，可以容纳HTML或是其他组件，不适用gwt-HTML样式。最有用的属性就是createUniqueId，可以设定一个id,HTMLPanel_N。和前面的CheckBox的checkN,相比，这里用大写字母和下划线。看起来多少有点怪异。<br />&lt;div&gt;content&lt;/div&gt;</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>HTMLTable</strong>
						<br />没有疑问，这是用一个Table实现的，重要的是，它是Grid,FlexTable的父类。提供了设定每行或是每一个单元格的样式设定的方法。表格中没有thead。假如要设定表头的话，可能通过设定第一行的样式来区别。<br />&lt;table&gt;&lt;tbody&gt;&lt;/tbody&gt;&lt;/table&gt;<br />table.getRowFormtter(0).setStyleName("style");</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>HorizontalPanel<br /></strong> 水平排列的面板，用一个只有一行的表格实现。<br /></code> &lt;table cell-spacing="0" cell-padding="0"&gt;<br />　&lt;tbody&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td style="display: static; vertical-align: top;" align="left"&gt;Item 1&lt;/td&gt;<br />　　　&lt;td style="display: static; vertical-align: top;" align="left"&gt;Item 2&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　&lt;/tbody&gt;<br />&lt;/table&gt;</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>HyperLink</strong>
								<br />一个有定义了锚点的DIV，默认的样式名：gwt-HyperLink<br />&lt;div&gt;&lt;/div&gt;</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>Image</strong>
								<br />没有问题，肯定是IMG.gwt-Image样式没有实现。<br />&lt;img src="..."/&gt;</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>Label</strong>
								<br />一个DIV，默认的样式是gwt-Label。Label不能解析HTML内容，假如你想要的话，可以用HTML来代替，两者都提供鼠标事件。Label会自动换行，但是你也可以通过setWordWrap来修改。<br />&lt;div class="gwt-Label"&gt;content&lt;/div&gt;</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>ListBox</strong>
								<br />
						</code>
				</code>
				<code>就是用Select和Option来实现。gwt-ListBox样式没有被实现。可以设定selected,size,multples等属性。</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>MenuBar</strong>
						<br />用一个包含表格的DIV实现。一个水平的菜单，只有一行，用单元格来设置菜单项，一个垂直的菜单，用行来区分菜单项。gwt-MenuBar只是设定外层的DIV的样式。<br /></code> &lt;div class="gwt-MenuBar"&gt;<br />　&lt;table&gt;<br />　　&lt;tbody&gt; <!-- example of a horizontal menu --><br />　　　&lt;tr&gt;<br />　　　　&lt;td class="gwt-MenuItem"&gt;text or html&lt;/td&gt;<br />　　　　&lt;td class="gwt-MenuItem"&gt;text or html&lt;/td&gt;<br />　　　&lt;/tr&gt;<br />　　　&lt;!--一个垂直菜单的例子<br />　　　&lt;tr&gt;&lt;td class="gwt-MenuItem"&gt;text or html&lt;/td&gt;&lt;/tr&gt;<br />　　　&lt;tr&gt;&lt;td class="gwt-MenuItem"&gt;text or html&lt;/td&gt;&lt;/tr&gt;<br />　　　--&gt;<br />　　&lt;/tbody&gt;<br />　&lt;/table&gt;<br />&lt;/div&gt;</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>MenuItem</strong>
								<br />一个菜单项就是在菜单条中的一个单元格。它的默认属性是gwt-MenuItem.选中的时候有一个附加的属性，gwt-MenuItem-selected.在菜单项默认的样式class="gwt-MenuItem",在选中的时候就改变成class="gwt-MenuItem gwt-MenuItem-selected".</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>PasswordTextBox</strong>
								<br />用Password实现，使用gwt-PasswordTextBox样式。</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>PopupPanel</strong>
								<br />只是一个DIV.</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>RadioButton</strong>
								<br />用一个INPUT实现，使用gwt-RadioButton样式。</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>RootPanel</strong>
								<br />
						</code>
				</code>
				<code>一个RootPanel可以附加到任何的组件上，但是以前属于这个组件的所有的内容都会被清除。假如你仔细想想，你会发现除了初始化之外，这个组件还有很多用处。</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>ScrollPanel<br /></strong> 一个Div设定了overflow属性为scroll 或auto.<br /></code> &lt;div style="overflow: auto;"&gt;<br />　content<br />&lt;/div&gt;</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>SimplePanel</strong>
								<br />就是一个Div.</code>
				</code>
		</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<strong>StackPanel</strong>
						<br />用一个表格来实现，每一个组用两行来保存，第一行放了标签，第二行放了内容。默认的这个表格使用gwt-StackPanel样式，标签行用了gwt-StackPanelItem和gwt-StackPanelItem-selected.当一个标签被选中的时候，它的样式就由原来的gwt-StackPanelItem替换成为gwt-StackPanelItem-seleted.<br /></code> &lt;table class="gwt-StackPanel" cell-spacing="0" cell-padding="0"&gt;<br />　&lt;tbody&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td class="gwt-StackPanelItem" height="1px"&gt;text/html&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td height="100%" valign="top"&gt;<br />　　　　content -- a widget<br />　　　&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　&lt;/tbody&gt;<br />&lt;/table&gt;</p>
		<p style="margin-right: 0px;" dir="ltr">
				<code>
						<code>
								<strong>TabBar</strong>
								<br />TabBar使用一个HorizontalPanel来实现，所以它也是一个Table,表格的样式是gwt-TabBar。对于第一个标签，通常是一个空的，它的样式是gwt-TabBarFirst,就是为了装饰,最后也会加上一个空的标签，指定样式为gwt-TabBarRest。当一个标签被选中的时候，gwt-TabBarItem-selected的样式会附加到样式中，这点和MenuItem是一样的。<br /></code> &lt;table class="gwt-TabBar" cell-spacing="0" cell-padding="0"&gt;<br />　&lt;tbody&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td class="gwt-TabBarFirst" style="height: 100%;"&gt;&lt;div class="gwt-HTML" style="height: 100%;"&gt;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;<br />　　　&lt;td&gt;Tab #1&lt;/td&gt;<br />　　　&lt;td&gt;Tab #2&lt;/td&gt;<br />　　　&lt;td class="gwt-TabBarRest" style="width: 100%;"&gt;&lt;div class="gwt-HTML" style="height: 100%;"&gt;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　&lt;/tbody&gt;<br />&lt;/table&gt;</code>
		</p>
		<p>
				<code>
						<strong>TabPanel</strong>
						<br />用一个VerticalPanel来实现，包含了一个TabBar和一个DeckPanel，这样就嵌套几层表格，样式gwt-TabPanel用到最外层表格。gwt-TabBar用到TabBar,gwt-TabPanelBottom用到DeckPanel的DIV上了。需要注意的是TabBar获取了width:100%样式，这样你就知道TabBar中的gwt-TabBarRest样式的必要了。<br /></code> &lt;table class="gwt-TabPanel" cell-spacing="0" cell-padding="0"&gt;<br />　&lt;tbody&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td&gt;<br /><!-- this is the TabBar -->　　　　&lt;table class="gwt-TabBar" style="width: 100%;" cell-spacing="0" cell-padding="0"&gt;<br />　　　　　&lt;tbody&gt;<br />　　　　　　&lt;tr&gt;<br />　　　　　　　&lt;td class="gwt-TabBarFirst" style="height: 100%;"&gt;&lt;div class="gwt-HTML" style="height: 100%;"&gt;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;<br /><!-- tabs go here -->　　　　　　　&lt;td class="gwt-TabBarRest" style="width: 100%;"&gt;&lt;div class="gwt-HTML" style="height: 100%;"&gt;&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;<br />　　　　　　&lt;/tr&gt;<br />　　　　　&lt;/tbody&gt;<br />　　　　&lt;/table&gt;<br />　　　&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td&gt;<br />　　　　&lt;div class="gwt-TabPanelBottom"&gt;<br /><!-- content gets added here -->　　　　&lt;/div&gt;<br />　　　&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　&lt;/tbody&gt;<br />&lt;/table&gt;</p>
		<p>
				<code>
						<code>
								<strong>TextArea</strong>
								<br />就是一个TextArea,默认的样式为gwt-TextArea.</code>
				</code>
		</p>
		<p>
				<code>
						<code>
								<strong>TextBox</strong>
								<br />
						</code> &lt;input type="text" class="gwt-TextBox" /&gt;</code>
		</p>
		<p>
				<code>
						<code>
								<code>
										<strong>Tree</strong>
										<br />就是一个包含了多个TreeItem的Div，默认样式gwt-Tree,设定overflow:auto.<br /></code> &lt;div class="gwt-Tree" style="overflow: auto;"&gt;<br />　&lt;div style="position: relative; margin-left: 16;" (handle)&gt;<br />　　&lt;table&gt;<br />　　　&lt;tr&gt;<br />　　　　&lt;td&gt;&lt;/td&gt;<br />　　　　&lt;td&gt;&lt;/td&gt;<br />　　　&lt;/tr&gt;<br />　　&lt;/table&gt;<br />　&lt;/div&gt;<br />&lt;/div&gt;</code>
				</code>
		</p>
		<p>
				<code>
						<code>
								<code>
										<code>
												<strong>TreeItem</strong>
												<br />用一个包含了一个表格的DIV来实现。默认的样式gwt-TreeItem和gwt-TreeItem-selected，来修饰里面的内容。但选中的时候gwt-TreeItem-selected会替换gwt-TreeItem。这个StackPanel是一样的。<br /></code> &lt;div style="position: relative; margin-left: 16; white-space: nowrap" (handle)&gt;<br />　&lt;table style="white-space: nowrap;"&gt;<br />　　&lt;tr&gt;<br />　　　&lt;td style="vertical-align: middle;"&gt;&lt;img src="tree_white.gif" /&gt;&lt;/td&gt;<br />　　　&lt;td style="vertical-align: middle;"&gt;<span style="display: inline;" class="gwt-TreeItem">content</span>&lt;/td&gt;<br />　　&lt;/tr&gt;<br />　&lt;/table&gt;<br /><span style="white-space: nowrap;">　children</span><br />&lt;/div&gt;</code>
						</code>
				</code>
		</p>
		<p style="text-align: justify;">
				<code>
						<code>
								<code>
										<code>
												<code>
														<strong>VerticalPanel</strong>
														<br />用一个表格来实现，所有的东西按行来排列。<br /></code> &lt;table cell-spacing="0" cell-padding="0"&gt;<br />　&lt;tbody&gt;<br />　　&lt;tr&gt;&lt;td style="display: static; vertical-align: top;" align="left"&gt;Item 1&lt;/td&gt;&lt;/tr&gt;<br />　　&lt;tr&gt;&lt;td style="display: static; vertical-align: top;" align="left"&gt;Item 2&lt;/td&gt;&lt;/tr&gt;<br />　&lt;/tbody&gt;<br />&lt;/table&gt;</code>
								</code>
						</code>
				</code>
		</p>
		<p>
				<code>
						<code>
								<code>
										<code>
												<code>
														<code>参考：<br /><a href="http://blogs.nubgames.com/code/?p=13">http://blogs.nubgames.com/code/?p=13</a></code>
												</code>
										</code>
								</code>
						</code>
				</code>
		</p>
		<p class="zoundry_bw_tags">
				<!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com -->
				<span class="ztags">
						<span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/gwt%20css" class="ztag" rel="tag">gwt css</a></span>
		</p>
<img src ="http://www.blogjava.net/cnjmgs/aggbug/92141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-06 03:00 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/06/92141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SubVersion入门级教程</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/04/91767.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Thu, 04 Jan 2007 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/04/91767.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/91767.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/04/91767.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/91767.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/91767.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在开发过程，我们不能少了版本管理，以前的cvs，现在流行的subversion,作为一个基本的工具，我们每一个人都需要熟练的掌握和使用。&nbsp;&nbsp;<a href='http://www.blogjava.net/cnjmgs/archive/2007/01/04/91767.html'>阅读全文</a><img src ="http://www.blogjava.net/cnjmgs/aggbug/91767.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-04 15:37 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/04/91767.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>猪年到了，看看人们多有创意</title><link>http://www.blogjava.net/cnjmgs/archive/2007/01/04/91732.html</link><dc:creator>Nile Black</dc:creator><author>Nile Black</author><pubDate>Thu, 04 Jan 2007 05:20:00 GMT</pubDate><guid>http://www.blogjava.net/cnjmgs/archive/2007/01/04/91732.html</guid><wfw:comment>http://www.blogjava.net/cnjmgs/comments/91732.html</wfw:comment><comments>http://www.blogjava.net/cnjmgs/archive/2007/01/04/91732.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/cnjmgs/comments/commentRss/91732.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/cnjmgs/services/trackbacks/91732.html</trackback:ping><description><![CDATA[<p></p> <p><img height="106" src="http://www.blogjava.net/images/blogjava_net/cnjmgs/WindowsLiveWriter/94b51270e0ff_B949/120.gif" width="360"><br><img height="112" src="http://www.blogjava.net/images/blogjava_net/cnjmgs/WindowsLiveWriter/94b51270e0ff_B949/23.gif" width="360"><br><img height="121" src="http://www.blogjava.net/images/blogjava_net/cnjmgs/WindowsLiveWriter/94b51270e0ff_B949/35.gif" width="360"> <br><img height="117" src="http://www.blogjava.net/images/blogjava_net/cnjmgs/WindowsLiveWriter/94b51270e0ff_B949/45.gif" width="360"><br><img height="111" src="http://www.blogjava.net/images/blogjava_net/cnjmgs/WindowsLiveWriter/94b51270e0ff_B949/53.gif" width="360">&nbsp;<br><br><strong><font color="#ff8000">2007年你会是哪一头猪呢？</font></strong></p><img src ="http://www.blogjava.net/cnjmgs/aggbug/91732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/cnjmgs/" target="_blank">Nile Black</a> 2007-01-04 13:20 <a href="http://www.blogjava.net/cnjmgs/archive/2007/01/04/91732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>