有没有办法制作JPanel的非深层副本

时间:2011-03-13 02:30:01

标签: java swing copy jpanel

好吧我有一个JPanel(我正在使用NetBeans和swing),我想复制并在另一个标签中使用它,这意味着它使用与其他面板相同的布局,但我不想制作一个深刻的副本。因为如果我在更改其中时对其进行深层复制,则会更改另一个。如果没有与原始

的联系,是否有任何方法可以复制它的样子

4 个答案:

答案 0 :(得分:3)

似乎你误解了“深层复制”这个词 - 与浅层副本相比,深层副本只会将与原作相关联留下这样的关系。

无论如何,创建整个Swing组件树的副本并不是真正支持的 - 它可以通过序列化来完成。

但是为什么你不能简单地使用创建原始JPanel的相同代码(包含其中的组件)并创建一个新代码?

答案 1 :(得分:0)

以下是使用JPanels / JFrames的设计视图解决以下问题而无需编码的方法。

您可以在设计视图中转到导航器,选择所有JPanel组件,然后键入ctrl + a和ctrl + c复制它们。然后创建另一个JPanel,在设计视图中,只需用ctrl + v粘贴它们。

结果:您可以获得具有相同属性和值的所有组件相同的大小,尺寸和位置。执行此操作后,您可以使用GUI表单的属性轻松更改所需内容。

答案 2 :(得分:-1)

实际上,您无法复制与原始关联的Swing组件。组件只能共享模型。

你可以复制你的面板,它将是完全独立的面板,与原版无关。

答案 3 :(得分:-1)

您在Netbeans IDE中使用Matisse UI设计器?然后你可以选择你设计的JPanel,将其复制到剪贴板并粘贴到另一个表格中。