我有一个很奇怪的问题,
将一个WidgetCollection
从一个FlowPanel
复制到另一个Widgets
。 WidgetCollection
中的 final FlowPanel toDelete = getWidgetByID(from);
final FlowPanel toPaste = getWidgetByID(to);
final Iterator<Widget> iterator = toDelete.iterator();
while (iterator.hasNext()) {
toPaste.add(iterator.next());
}
正在移动而不是复制。因为这些小部件仍保留在上一个面板中。
这是我的代码:
final FlowPanel toDelete = getWidgetByID(from);
final FlowPanel toPaste = getWidgetByID(to);
final int count = toDelete.getWidgetCount();
for (int i = 0; i < count; i++) {
toPaste.add(toDelete.getWidget(i));// here, i'm getting IndexOutOfTheBounds exception
}
和下一个版本:
{{1}}
这里有什么问题? 在此先感谢!!!
答案 0 :(得分:1)
将小部件添加到新面板时,会自动将其从上一个面板中删除。没有超级简单的方法来解决这个问题。您需要为每个小部件创建一个新实例,然后添加该副本。
如果只是将小部件从一个面板移动到另一个面板的目标,只需将toDelete.getWidget(i)
更改为toDelete.getWidget(0)
即可。您也可以考虑仅移动toDelete
面板而不是移动其所有小部件。