【发布时间】:2017-07-16 17:03:21
【问题描述】:
我创建了一个javax.swing.JButton,用于退出。如何将按钮的精确副本(重复)复制到另一个 JFrame?
private JButton signOut;
public JButton getBtn(){
//Any idea?
}
return signOut; 不是一个选项,因为那样当我调用setBounds() 或setVisible() 的signOut 时它会搞砸主页。
我是否必须使用按钮创建类的新对象才能仅获取此组件?还是有其他解决方案?
【问题讨论】:
-
你不能'return signOut',因为你只是复制对原始按钮对象的引用。 JButton的定义中是否有拷贝构造函数?
-
"如何获取 JComponent 的副本?" 副本还是实例?请注意,由于
JComponent只能有一个父容器,因此“复制”没有多大意义。 -
@tmarwen 因为我已经做了一些设计.. 设置字体、图标等...所以如果我可以在不重新编写整个代码的情况下获得对象的副本会容易得多.. .
-
@AndrewThompson 不是实例。对象的副本。
-
您可能不想要副本或副本。我喜欢 Jeremy 的回答:创建一个方法并将代码放入该方法中以创建按钮。如果您能向我们展示更多代码或描述为什么您想要一份副本,将会有所帮助;我觉得这是一个XY problem,可能有比尝试复制按钮更好的解决方案。
标签: java swing jframe jbutton jcomponent