Mi spiace ma ....Originariamente inviato da EngLab
Il metodo funziona benissimo per tutti i componenti swing, non funziona però per String.Codice PHP:public void setComponent(Object component) {
if (component instanceof JLabel) {
((JLabel) component).setText(text);
} else if (component instanceof JButton) {
((JButton) component).setText(text);
} else if (component instanceof JMenuItem) {
((JMenuItem) component).setText(text);
} else if (component instanceof JMenu) {
((JMenu) component).setText(text);
} else if (component instanceof TitledBorder) {
((TitledBorder) component).setTitle(text);
} else if (component instanceof JRadioButton) {
((JRadioButton) component).setText(text);
} else if (component instanceof JCheckBox) {
((JCheckBox) component).setText(text);
} else if (component instanceof String) {
component = new String(text);
}
}
1) Perché hai dovuto fare un metodo (fumoso e dubbio) del genere ... non è chiaro!
2) Perché vorresti farlo per String .... non è chiaro!
3) Tra l'altro non ha nemmeno senso, primo perché le stringhe sono oggetti "immutabili" ma secondo, poi comunque anche se quel parametro 'component' fa riferimento ad un oggetto String eseguire component=unaAltraStringa; va solo a cambiare il reference che è contenuto nel parametro (che è "locale").
E tutto questo perché in Java il passaggio dei parametri è sempre per valore, per i tipi reference viene passata una copia del valore del reference.

Rispondi quotando