verschiedene toString-Methoden für ein Objekt

Hallo,

folgendes Problem:

Wenn ich irgendwelche Objekte beispielsweise in einer JList oder JComboBox einfüge, sehe ich als Listeneintrag den Inhalt von toString() dieses Objektsm soweit so simpel.

Was aber, wenn ich ein und das selbe Objekt in verschiedenen Listen verschieden darstellen möchte, beispielsweise in einer JList mit vollem Namen, in einer JComboBox aber nur mit Kurznamen? Natürlich könnte ich einfach nur die Strings direkt in die JList bzw. JComboBox einfügen, allerdings möchte ich, dass die ganzen Objekte enthalten sind, wenn ich beispielsweise mit getSelectedItem() darauf zugreifen möchte.

Gibt es da eine Lösung?

Danke und mfg

henning-malaysia
 
moin,

dazu müsstest du imho die toString() Methode des gewünschten Objekts überschreiben. In der Methode stellst du dann fest von wo sie aufgerufen wurde und fertig ist das . :)

gruß stefan
 
Hmmm, klingt im Prinzip einleuchtend, bloß: Wie mach ich das, wo gibt es so eine getInvoker()-Funktion?

Ich könnte natürlich in meiner überschriebenen toString()-Methode ein Aufrufparameter hinzufügen, bloß die Liste ruft die toString-Methode ja implizit auf, d.h. ich kann der JList ja nicht sagen, wie sie die toString() aufrufen soll?

gruß

henning-malaysia
 
Eine Möglichkeit wäre eine Objektvariable zu setzen. Bspw ein String der die Werte "short" und "long" annhemen kann. Dann musst du die toString() überschreiben und in ihr prüfst du auf diesen String ab.

Weiß zwar nicht ob du die Variable vorher setzen kannst und ob das sauber ist, aber es sollte funktionieren.

Gruß

Romsl
 
Zurück