Java Drag&丢弃和克隆

时间:2012-07-28 08:48:20

标签: java swing drag-and-drop jlabel cloneable

我有这个问题要解决你有JPanelJLabel的问题,你必须通过拖放克隆JLabel并在JLabel克隆上创建JPanel克隆{1}} JLabel被删除的地方。我想问的第一件事是,是否可以在像监听器这样的匿名类中实现Cloneable接口到JLabel,所以我不必编写自己的扩展JLabel的类并实现Cloneable。我知道如何通过转移“text”属性将JLabel拖放到JTextField,但我不知道如何将JLabel克隆到JPanel

1 个答案:

答案 0 :(得分:1)

在此上下文中,实现Cloneable接口不太可能产生任何有益效果。在Effective Java, Second Edition中,作者概述了项目11中的克隆对象的变幻莫测:明智地覆盖克隆

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

由于JLabel不是用户可编辑的,因此它可能是DnD的意外目标,尽管它是possible。或者,您可以在运行时使用容器的add()方法添加suitable component,然后validate()repaint()