Java 克隆Swing组件

Java 克隆Swing组件,java,swing,Java,Swing,我正在实现一个复制/粘贴示例,当我将剪贴板设置为: 剪贴板.setContents(新的MyTransferable(图像标签),空) 我希望image\u标签(是JLabel)是复制标签的克隆 我该怎么做呢?JComponents不会覆盖克隆,但它们是bean,因此您可以使用BeanUtils之类的工具将属性从标签复制到新标签。JComponents不会覆盖克隆,但是它们是bean,所以您可以使用BeanUtils之类的东西将属性从标签复制到新标签。因为所有Swing组件都是可序列化的,所以您

我正在实现一个复制/粘贴示例,当我将剪贴板设置为:

剪贴板.setContents(新的MyTransferable(图像标签),空)

我希望
image\u标签
(是
JLabel
)是复制标签的克隆


我该怎么做呢?

JComponents不会覆盖克隆,但它们是bean,因此您可以使用BeanUtils之类的工具将属性从标签复制到新标签。

JComponents不会覆盖克隆,但是它们是bean,所以您可以使用BeanUtils之类的东西将属性从标签复制到新标签。

因为所有Swing组件都是可序列化的,所以您可以序列化到内存/字节流,然后反序列化回来。这对于深度复制类来说是一个很好的实用方法。
如果您想加快速度,可以重写in/out流以删除与并发相关的代码。

因为所有Swing组件都是可序列化的,所以您只需序列化到内存/字节流并反序列化回来即可。这对于深度复制类来说是一个很好的实用方法。
如果您想加快一点速度,可以重写in/out streams以删除与并发相关的代码。

这似乎需要做很多工作。坦率地说,序列化应该扩展可克隆。为什么java不能使所有可序列化对象都可克隆?在那一点上看起来像是懒惰。事实上这并不是那么多的工作。同意你的想法:可克隆和可序列化是非常不同的。克隆是对象复制。序列化是以指定的外部化格式存储/还原对象。这似乎需要大量的工作。坦率地说,序列化应该扩展可克隆。为什么java不能使所有可序列化对象都可克隆?在那一点上看起来像是懒惰。事实上这并不是那么多的工作。同意你的想法:可克隆和可序列化是非常不同的。克隆是对象复制。序列化是以指定的外部化格式存储/还原对象。