2010-06-30 64 views
0

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

謝謝

回答

1

如果使用JLabel的克隆方法,您可以使用克隆。否則,您將不得不復制它(將您的私有JLabel的屬性複製到公共JLabel中)。 然後實際上沒有用到私有JLabel,你可以在你的if中實例化一個新的JLabel。它不是複印機,而是工廠(例如MyJLabelFactory.getJLabel(labelNo)))