SimplePanel和子窗口小部件

时间:2015-03-03 07:33:10

标签: gwt

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

SimplePanel can contain one child widget

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

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

" internalVerticalPanel"对象由Horizo​​ntalPanel和Labels组成。这种组合不可能吗?

非常感谢您提前, 此致

1 个答案:

答案 0 :(得分:0)

就像异常所说的那样 - 你只能将一个孩子添加到SimplePanel容器(及其子类,如ScrollPanelFormPanel)。来自异常的堆栈跟踪应该精确定位第二个孩子被添加的位置。

至于你问题的第二部分 - SimplePanel的(一个)孩子本身可以有多个孩子(如果它的实现允许的话)。因此,您向我们展示的代码应该按照您的预期运行 - 这是您没有向我们展示的行为错误的代码;)

没关系:

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可以有多个孩子(只要它支持多个孩子 - 例如,它是FlowPanel)。 ScrollPanel有一个以上的直接孩子是错误的:ChildWidget1 ChildWidget2