SimplePanel 和子部件

SimplePanel and child widgets

我对 SimplePanel 及其子窗口小部件有疑问。我正在捕获以下异常

SimplePanel can contain one child widget

在我的代码中,继承自 SimplePanel 的唯一元素是 ScrollPanel,其用法如下:

scroll = new ScrollPanel();
scroll.add(internalVerticalPanel);
internalVerticalPanel2.add(scroll);

"internalVerticalPanel"对象由一个Horizo​​ntalPanel和Labels组成。难道这个组合不行吗?

非常感谢您, 问候

正如异常所说 - 您只能将一个 child 添加到 SimplePanel 容器(及其子类,如 ScrollPanelFormPanel)。来自异常的堆栈跟踪应该查明添加第二个 child 的位置。

至于你问题的第二部分 - SimplePanel 的(一个)child 本身可以有多个 children(如果其实现允许的话)。因此,您向我们展示的代码应该会按预期工作 - 是您没有向我们展示的代码出现问题 ;)

这没问题:

Whatever container
|_ ScrollPanel
   |_FlowPanel  <- the only direct child of ScrollPanel
     |_SimplePanel
     |_TextBox
     |_ScrollPanel
     |_FlowPanel
     |_ScrollPanel

这似乎是你的情况:

ScrollPanel
|_ChildWidget1 <- child number 1 of ScrollPanel
| |_TextBox
| |_TextBox
| |_Label
|_ChildWidget2 <- child number 2 of ScrollPanel -> error!

ChildWidget1可以有多个children(只要它支持多个children——例如,它是一个FlowPanel)。 ScrollPanel 有多个 direct child 是一个错误:ChildWidget1 and ChildWidget2.