繁体   English   中英

如何将jlabel的属性复制到另一个新的jlabel

[英]how to copy properties of a jlabel to another new jlabel

我想将我的私有jlabel对象复制到一个新的jlabel对象,并使该新对象公开。 想法是允许任何人访问jlabel的属性,但不允许进行将在原始界面上显示的任何更改。 下面的代码不起作用,因为它只是复制原始对象的引用。

public javax.swing.JLabel getCopyOfLabel(int labelno) {
    javax.swing.JLabel newlbl = new javax.swing.JLabel();
    if (labelno == 0) {
        newlbl = lbl_0_original;
        return newlbl;
    } else if (labelno == 1) {
        newlbl = lbl_1_original;
        return newlbl;
    } else {
        newlbl = lbl_2_original;
        return newlbl;
    }
}

我该怎么做? 我可以在上面使用clone()吗?

谢谢

如果实现了JLabel的clone方法,则可以使用clone。 否则,您将不得不复制它(将私有JLabel的属性复制到公共JLabel)。 这样,私有JLabel实际上就没有用了,您可以在其他实例中实例化一个新的JLabel。 那不是复印机,而是工厂(例如MyJLabelFactory.getJLabel(labelNo))

如果您使用spring,则可以使用实用程序方法; 例如,请参见BeanUtils.copyProperties

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM