1

我有这个问题要解决你有一个JPanel并且JLabel你必须JLabel通过拖放克隆并在放置的位置创建一个JLabel克隆。我想问的第一件事是是否可以在匿名类中实现接口,比如监听器,所以我不必编写自己的扩展和实现的类。我知道如何通过传输“文本”属性来拖放到,但我不知道如何将一个克隆到.JPanelJLabelCloneableJLabelJLabelCloneableJLabelJTextFieldJLabelJPanel

4

1 回答 1

1

在这种情况下,实现Cloneable接口不太可能实现任何有益效果。在Effective Java, Second Edition中,作者在第 11 条:明智地覆盖克隆中概述了克隆对象的变幻莫测。

拖放传输数据,而不是容器。因为String是不可变的,所以根本没有理由克隆 aString。对于可变数据,复制构造函数或工厂方法更有意义。

因为JLabel不是用户可编辑的,它可能是 DnD 的意外目标,尽管它是可能的。或者,您可以在运行时使用容器的方法添加合适的组件,然后使用and 。add()validate()repaint()

于 2012-07-29T01:56:58.583 回答