Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有办法制作JPanel的非深度副本_Java_Swing_Copy_Jpanel - Fatal编程技术网

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

Java 有没有办法制作JPanel的非深度副本,java,swing,copy,jpanel,Java,Swing,Copy,Jpanel,好的,我有一个JPanel(我正在使用NetBeans和swing),我想复制它并在另一个选项卡中使用,这意味着它使用与另一个面板相同的布局,但我不想复制它的深层次。因为如果我做了一个深拷贝,当我改变一个时,我就改变了另一个。有没有办法只复制它的外观而不与原作有联系似乎你误解了“深度复制”这个词——深度复制的效果是不与原作有联系,而浅层复制则会留下这种联系 无论如何,创建整个Swing组件树的副本并不是真正受支持的,但是可以通过序列化来完成 但是,为什么不能简单地使用创建原始JPanel(其中包

好的,我有一个JPanel(我正在使用NetBeans和swing),我想复制它并在另一个选项卡中使用,这意味着它使用与另一个面板相同的布局,但我不想复制它的深层次。因为如果我做了一个深拷贝,当我改变一个时,我就改变了另一个。有没有办法只复制它的外观而不与原作有联系

似乎你误解了“深度复制”这个词——深度复制的效果是与原作有联系,而浅层复制则会留下这种联系

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


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

您实际上无法复制绑定到原始JPanel的Swing组件。组件只能共享模型


您可以复制一个完全独立的面板,而不必与原始面板绑定。

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

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

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


结果:所有零部件的尺寸、尺寸和位置都相同,且具有相同的特性和值。完成此操作后,您可以使用GUI表单的属性轻松地更改任何您想要的内容。

很抱歉,yeh把我的话弄混了,我是说没有领带的。并且我还使用了NetBeans的桌面应用程序功能。因此,它正在为我编写代码。我想让它做的是我有一个电话簿,上面有每个人的标签。我有一个模板选项卡,它具有应有的外观,因此,如果他们添加新联系人,它将使用该模板创建一个新选项卡。因此,我正在寻找一种方法,仅复制该平板电脑,以便他们可以使用添加功能多次NetBeans为您的模板选项卡生成一些代码。如果尚未将此代码移到单独的方法中,则将其移动,并为要填充的每个选项卡调用一次。