2010-06-30 7 views
0

Je souhaite copier mon objet jlabel privé dans un nouvel objet jlabel et rendre le nouveau public. L'idée est de permettre à quiconque d'accéder aux propriétés de jlabel mais de ne permettre aucune modification qui sera affichée sur l'interface d'origine. Le code ci-dessous ne fonctionne pas car il copie simplement la référence de l'objet original.comment copier les propriétés d'un jlabel dans un autre nouveau 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; 
    } 
} 

Comment puis-je faire comme je le veux? Puis-je utiliser clone() à ce sujet?

Merci Vous

Répondre

1

si la méthode clone de JLabel est mis en œuvre, vous pouvez utiliser clone. Sinon, vous devrez le répliquer (copiez les propriétés de votre JLabel privé dans votre JLabel public). Ensuite, il n'y a vraiment aucune utilité pour le JLabel privé et vous pouvez juste instancier un nouveau JLabel dans votre if sinon. Ce n'est pas un copieur alors mais une usine (par exemple MyJLabelFactory.getJLabel (labelNo)))