我有一个很奇怪的问题,
将一个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
    }

这里怎么了?
提前谢谢!!!

最佳答案

将小部件添加到新面板时,它将自动从以前的面板中移除。没有什么超简单的方法可以绕过这个。您需要为每个小部件创建一个新实例,然后添加该副本。
如果您的目标只是将小部件从一个面板移动到另一个面板,只需将toDelete.getWidget(i)更改为toDelete.getWidget(0)。您还可以考虑只移动toDelete面板本身,而不是移动其所有小部件。

07-24 09:32