GWT中remove的小問題 我的所有隨筆屬于個人總結,有不足之處請回復指出
在GWT中,在widget的方法remove是非常常用的,但請您好好注意一個小問題:當你用循環remove時,請注意最好使用倒循環,因為如果你要是用正循環的話,remove一個widget后,他的下個widget就會到他的“位置”,例如:
int count = widgetPanel.getWidgetCount() ;
for(int i = 0 ; i < count ; i ++ )
{
widgetPanel.remove(i) ;
}
這樣肯定會出異常的;
因為當你remove掉第一個widget后,第二個widget就變成第一個widget了,所以,當你認為remove掉第二個時,其實是把原來的第三個widget給remove掉了;
解決方案:
1.倒循環:
int count = widgetPanel.getWidgetCount() ;
for(int i = count - 1 ; i >= 0 ; i -- )
{
widgetPanel.remove(i) ;
}
這樣就不會出現以上的情況:)
2.remove第一個;
int count = widgetPanel.getWidgetCount() ;
for(int i = 0 ; i < count ; i ++ )
{
widgetPanel.remove(0) ;
}
這種方法,也正說明了GWT轉換成javascript后的特性,它是根據remove的元素,在他父元素里的“位置”進行remove,這點是和Swing最大的區別,一定要注意喲:)
posted on 2007-03-21 01:46 田亮 閱讀(1287) 評論(1) 編輯 收藏 所屬分類: GWT