﻿<?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-J2EE,Documentum,GWT,EJB学习路程-随笔分类-GWT</title><link>http://www.blogjava.net/todd841026/category/21426.html</link><description>为了所爱的，和爱我的人努力</description><language>zh-cn</language><lastBuildDate>Mon, 09 Apr 2007 03:05:28 GMT</lastBuildDate><pubDate>Mon, 09 Apr 2007 03:05:28 GMT</pubDate><ttl>60</ttl><item><title>GWT中remove的小问题                我的所有随笔属于个人总结，有不足之处请回复指出</title><link>http://www.blogjava.net/todd841026/archive/2007/03/21/GWT.html</link><dc:creator>田亮</dc:creator><author>田亮</author><pubDate>Tue, 20 Mar 2007 17:46:00 GMT</pubDate><guid>http://www.blogjava.net/todd841026/archive/2007/03/21/GWT.html</guid><wfw:comment>http://www.blogjava.net/todd841026/comments/105128.html</wfw:comment><comments>http://www.blogjava.net/todd841026/archive/2007/03/21/GWT.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/todd841026/comments/commentRss/105128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/todd841026/services/trackbacks/105128.html</trackback:ping><description><![CDATA[在GWT中,在widget的方法remove是非常常用的，但请您好好注意一个小问题：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当你用循环remove时，请注意最好使用倒循环，因为如果你要是用正循环的话，remove一个widget后，他的下个widget就会到他的&#8220;位置&#8221;，例如：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int count = widgetPanel.getWidgetCount() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i = 0 ; i &lt; count ; i&nbsp;++&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widgetPanel.remove(i) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;这样肯定会出异常的；<br>&nbsp;因为当你remove掉第一个widget后，第二个widget就变成第一个widget了，所以，当你认为remove掉第二个时，其实是把原来的第三个widget给remove掉了；<br>解决方案：<br>1.倒循环：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int count = widgetPanel.getWidgetCount() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i =&nbsp;count - 1&nbsp;; i&nbsp;&gt;= 0&nbsp;; i&nbsp;--&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widgetPanel.remove(i) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>这样就不会出现以上的情况：）<br>2.remove第一个；<br>&nbsp;&nbsp;&nbsp;int count = widgetPanel.getWidgetCount() ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int i = 0 ; i &lt; count ; i&nbsp;++&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;widgetPanel.remove(0) ;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>这种方法，也正说明了GWT转换成javascript后的特性，它是根据remove的元素，在他父元素里的&#8220;位置&#8221;进行remove，这点是和Swing最大的区别，一定要注意哟：） 
<img src ="http://www.blogjava.net/todd841026/aggbug/105128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/todd841026/" target="_blank">田亮</a> 2007-03-21 01:46 <a href="http://www.blogjava.net/todd841026/archive/2007/03/21/GWT.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>