2011-03-13 86 views
0

好吧我有一个JPanel(我使用的是NetBeans和swing),我想制作一个副本并在另一个选项卡中使用它,这意味着它使用与其他面板相同的布局,但我不想做一个深层副本。因为如果我在更改一个版本时对其进行深层复制,则会更改另一个版本。有没有什么办法,只是做的副本是什么样子,而无需将关系到原来的有没有办法让一个JPanel的非深层副本

回答

3

看来你误解这个字“深拷贝” - 深副本只是有是效果绑定到原来的,而浅拷贝,这留下了这样的关系。

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

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

+0

对不起,你的话混淆了我的意思是一个没有关系。我使用net beans的桌面应用程序功能。所以它正在为我编码。我试图让它做的事情是我有一个电话簿与每个人的标签。我有一个模板选项卡,它有它应该看起来如此,如果他们添加一个新的联系人,它会创建一个新的选项卡与该模板。所以我正在寻找一种方法来制作该平板电脑的副本,以便他们可以使用添加功能多次 – Puresilence 2011-03-13 08:17:53

+1

Netbeans为您的模板选项卡生成了一些代码。如果该代码尚未存在,请将其移入单独的方法中,并为每个要填充的选项卡调用一次。 – 2011-03-13 13:32:13

-1

实际上,您无法创建与原始绑定的Swing组件的副本。组件只能共享模型。

你可以制作一个克隆你的面板,这将是完全独立的面板,不会绑定到原来的。

-1

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

0

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

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

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

相关问题