Object in JComboBox laden

Duckemai

Mitglied
Erst einmal HALLO zusammen, da ich neu hier bin.

Ich schreibe derzeit eine kleine Applikation. Dabei ist mir ein seltsames Objektverhalten aufgefallen.
Vielleicht gibt es jemanden, der es mir erklären kann?!

Ich will den Wert einer JComboBox mittels einer ArrayList festlegen.
Da ein Object nicht so ohne weiteres in ein int gecastet werden kann, habe ich folgendes versucht:

blaJComboBox.setSelectedIndex((Integer)blaArrayList.get(0));

Meine IDE (eclipse) meckert auch nicht, wirft aber beim Start diesen Fehler:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer

Aber das hier funktioniert:
blaJComboBox.setSelectedIndex(Integer.parseInt((String) blaArrayList.get(0)));

Warum aber?

Vielen Dank,
Duckemai
 
Weil ersteres die "Klassendeklaration" verändert (z. B. ImageIcon, welches in einer Icon-Variable gepsichert ist, wieder zurück in ImageIcon), letzteres wandelt nen String in nen Integer um. Aber warum speicherst du den Inhalt der JComboBox nicht als String, oder machst die ArrayList-Template nicht zu Integer?
 
Ich habe den Inhalt der JComboBoxen als String[] gespeichert. Doch geht es mir um den Zugriff darauf. Also über die Indizes. Ich möchte über eine config.txt die zuletzt gemachten Änderungen festhalten. Also lese ich Zeile um Zeile aus der .txt und setze die Werte in den ComboBoxen. ArrayList zu Integer machen? Ist ArrayList nicht ein object? Kann man das komplett zu Integer ändern? Du hast doch im ersten Satz geschrieben, dass eine Veränderung der Klassendeklaration nicht möglich ist.
 
Natürlich, jede Instanz ist ein Object, wenn nichts angegeben ist erbt jede Klasse (außer Object) von Object. Aber du kannst ja den Generischen Wert in den Spitzen klammern danach (z. B. List<Integer> blaArrayList = new ArrayList<Integer>()) ändern. Die Werte zum hinzufügen und das zum Integer ändern sind logische Teile, das hinzufügen ein GUI-Teil. Ich würde das möglichst sortieren (sollte man afaik wegen invokeLater sowieso), aber ich denke es ist besser vorm hinzufügen zu Integer zu parsen, damit die logischen Teile beisammen sind.
 
Ah ja. Sowas geht ja auch. Na, beim nächsten Mal mache ich mir vorher dazu Gedanken. An dieser Stelle des Projektes müsste ich rückwirkend dann doch wieder zu viel ändern.

Danke!
 
Hey,

Nur so... das Thema ist erledigt, also markiere es bitte auch als erledigt. Alle die dieses Forum
besuchen sind dankbar wenn sie nicht den ganzen Thread lesen müssen (vielleicht könnte ich ja noch helfen)
nur um dann zum Schluss zu sehen das sich das Problem erledigt hat.

Freundliche Grüsse
CKingZesi
 

Neue Beiträge

Zurück