2015-03-03 52 views
1

我对SimplePanel及其子窗口小部件有疑问。我捕捉以下例外SimplePanel和子窗口小部件

SimplePanel can contain one child widget 

在我的代码,从SimplePanel继承了独特元件是ScrollPanel其被使用如下:

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

的“internalVerticalPanel”目的通过一种由水平面板和标签。这种组合不可能吗?

非常感谢你提前, 问候

回答

0

这只是作为例外,说 - 你可以添加只有一个孩子到SimplePanel容器(和它的子类,像ScrollPanelFormPanel)。来自异常的堆栈跟踪应该指出第二个孩子正在添加的位置。

至于你的问题的第二部分 - SimplePanel的(一)孩子本身可以有多个孩子(如果它的实现允许的话)。所以,你的代码已经证明我们应该为你所期望的工作 - 这是你还没有告诉我们运作错误的代码;)

这是OK:

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有多个直接子:ChildWidget1ChildWidget2

+0

谢谢你的评论!代码创建了两个ScrollPanel对象(它被复制到代码的另一部分中),并且我已经移除了第二个对象,保持包含更高级别对象的单个Scroll,并且它可以工作。那么,我想,可以创建一个Scroll的单个对象,不仅是一个孩子,对吧? – 2015-03-04 13:39:30

+0

没有看到确切的代码,很难说发生了什么,但我确信*你可以*创建'ScrollPanel'(或其他'SimplePanel's)的多个实例。只要确保每个实例只有*一个* **直接**孩子。我会在我的答案中添加一些示例。 – 2015-03-04 20:29:30

+0

这不完全是我所做的。我创建了一个对象ScrollPanel panel = new ScrollPanel();与其独特的孩子。一旦插入到主屏幕中,我创建了一个新的对象(即scroll = new ScrollPanel())和相同的过程。在这里,代码被破坏了......现在,我在所有代码中都有一个对象,它的工作原理!谢谢! – 2015-03-05 07:02:21

相关问题