2011-04-21 56 views
0

我有三个选项卡,第一个选项卡包含一个组件,第二个另一个组件,第三个选项卡包含第一个和第二个选项卡中的两个组件。 在我的第三个选项卡上,两个组件都不显示。我必须对第一个和第二个组件进行克隆,才能在第三个标签上使用它?如果我的组件的某些属性更改会怎么样?带有几次同一面板的选项卡式窗格

回答

1

正如其他人所述,Swing JComponent不能添加到多个其他JComponent(其父母)。

如果您关注的是共享组件的内容,那么你通常有一个容易的选择:因为Swing组件是基于MVC ,他们都有一个型号,你可以几个JComponent S之间共享。如果要同步其他属性(

JTextField field1 = new JTextField(); 
JTextField field2 = new JTextField(); 

field2.setDocument(field1.getDocument()); 

现在:

例如,JTextComponentJTextFieldJTextAreaJTextComponent S)拥有Document它的模型,这Document可以共享,如下面的代码片段例如,列数为JTextField),则必须按照其他人的建议使用PropertyChangeListener

0

是的,任何摆动组件只能添加到一个容器中。

0

在每个选项卡上,您应该有单独的组件,使用侦听器可以操纵这些组件的属性。

为了解决问题,这样你应该熟悉MVC设计模式,

1

Swing组件只能有一个家长在同一时间。所以如果你试图将一个组件的一个实例添加到多个容器中,这是行不通的。

因此,您必须为每个要添加到的容器创建组件的实例。

1

如果你想实现这一点。您可以执行以下步骤 - 添加选项卡列表 - 每当选中选项卡时,您可以添加需要显示在选定选项卡面板中的组件并显示它。 (即无论何时Tabpanel正在显示,我们将重置组件的父级详细信息)

+0

完美适合我,简单快捷。 – Sheepy 2012-03-19 15:32:51

相关问题