不能将 Swing 组件添加到多个容器中吗?

2022-09-01 15:19:26

我正在尝试(测试其他东西)将一个引用添加到两个引用以测试它,并且它从它添加到的第一个面板中消失!JButtonJPanels

那么,不能将 Swing 组件添加到多个容器中吗?

提前感谢您。


答案 1

来自: http://download.oracle.com/javase/tutorial/uiswing/components/toplevel.html

每个 GUI 组件只能包含一次。如果某个组件已在容器中,并且您尝试将其添加到另一个容器中,则该组件将从第一个容器中删除,然后添加到第二个容器中。


答案 2

正如您所发现的那样,您无法共享组件。但是,您还可以使用其他方法。

对于 JButtons,您可以共享一个操作:

JButton button1 = new JButton( someAction );JButton button2 = new JButton( someAction );

有关详细信息,请阅读 Swing 教程中有关如何使用操作的部分。

在其他情况下,您可能希望共享模型:

DefaultTableModel model = new DefaultTableModel( ... );
JTable table1 = new JTable( model );
JTable table2 = new JTable( model );

解决方案取决于您的要求。


推荐