Ich habe folgende Aussage jetzt schon sehr oft gelesen, ganz besonders in diesem Forum, aber nie eine Erklärung wieso und wie man es sonst macht (oder auch anders gesagt, die Antwort war wohl schon hier oder da vorhanden, mir ist es aber irgendwie ständig entgangen)
Ich muss da leider fragen, wie macht man es dann? Ich habe z.B. folgenden Code
Über den Sinn/Unsinn eines StringBuilders im ersten Beispiel kann man streiten (im Vergleich zur String concatenation), man kann hier aber auch richtige Zeichenketten zusammenfügen. Die Kernfrage ist: wie mache ich aus dem StringBuilder einen String, den ich im JTextField einsetzen kann, wenn toString() ein Missbrauch des Zweckes ist?
Gleiches im zweiten Beispiel, das eingelesene Item ist ein Object, kann ich in einer Object Variable speichern, nur wenn ich das später in einem Textfeld haben will, brauche ich es wieder als String.
Was nu also?
Ich kann es nicht oft genug sagen. toString() ist für Debugging-Zwecke und Logausgaben. Sie ist nicht für die Ausgabe auf GUIs gedacht!!!! Das ist ein eklatanter Missbrauch dieser Methode und wird Dir bei der nächsten Änderung auf die Füße fallen.
Ich muss da leider fragen, wie macht man es dann? Ich habe z.B. folgenden Code
Java:
StringBuilder sb = new StringBuilder();
int n;
Random r = new Random();
for (int i = 0; i < 4; i++) {
n = r.nextInt(10) + 48;
sb.append((char) n);
}
for (int i = 0; i < 2; i++) {
n = r.nextInt(26) + 65;
sb.append((char) n);
}
for (int i = 0; i < 4; i++) {
n = r.nextInt(10) + 48;
sb.append((char) n);
}
txtKHFallnummer.setText(sb.toString()); //txtKHFallnummer ist ein JTextField
...
...
strData[19] = cbxKommArt1.getSelectedItem().toString(); //cbxKomm1Art ist eine JComboBox
txtKommArt1.setText(strData[19]); //txtKommArt1 ist ein JTextField
Über den Sinn/Unsinn eines StringBuilders im ersten Beispiel kann man streiten (im Vergleich zur String concatenation), man kann hier aber auch richtige Zeichenketten zusammenfügen. Die Kernfrage ist: wie mache ich aus dem StringBuilder einen String, den ich im JTextField einsetzen kann, wenn toString() ein Missbrauch des Zweckes ist?
Gleiches im zweiten Beispiel, das eingelesene Item ist ein Object, kann ich in einer Object Variable speichern, nur wenn ich das später in einem Textfeld haben will, brauche ich es wieder als String.
Was nu also?