两次添加相同的对象

时间:2010-02-04 12:25:41

标签: gwt gxt

我有一个标签和两个面板。我想在每个面板中添加标签,但渲染后只显示一个标签。我可以创建第二个标签,但我认为,必须可以两次添加相同的标签。这是我的代码:

// Create labels
Label sectorLabel = new Label("Bereich");

// Create panels/rows
HorizontalPanel row1 = new HorizontalPanel();
HorizontalPanel row2 = new HorizontalPanel();

// Add content to row1
row1.add(sectorLabel);

// Add content to row2      
row2.add(sectorLabel);

2 个答案:

答案 0 :(得分:7)

您无法将相同的小部件添加到两个面板,小部件只能有一个父级。

解决方案只是创建具有相同内容的第二个标签。

答案 1 :(得分:3)

当您将窗口小部件作为子窗口添加到另一个窗口小部件时,包含的类将首先执行removeFromParent操作。所以,你不能两次添加一个小部件。

你为什么要那样做?也许这是正确的问题。如果您不想更新屏幕上多个位置的状态,那么您可能需要对数据应用观察者模式,并在数据更改时更新所有观察者。