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

时间:2010-06-30 15:51:44

标签: java oop jlabel

我想将我的私有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()吗?

谢谢

2 个答案:

答案 0 :(得分:1)

如果实现了JLabel的克隆方法,则可以使用clone。否则你将不得不复制它(将私有JLabel的属性复制到你的公共JLabel)。 然后实际上没有用于私有JLabel,你可以在if else中实例化一个新的JLabel。它不是复印机,而是工厂(例如MyJLabelFactory.getJLabel(labelNo)))

答案 1 :(得分:1)

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