Serialisierung von JComboBox

Status
Nicht offen für weitere Antworten.

Craven

Aktives Mitglied
Hallo Leute!

Folgendes Problem:

Habe eine JComboBox, die sich immer die letzten 10 Einträge merkt (ist editable). Wenn allerdings die Applikation neu gestartet wird sind die allerdings wieder weg. Darum möchte ich diese Einträge speichern und beim nächsten Aufruf laden.

Da laut Doku:
Code:
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

Die Serialisierung dieses Objectes in den nächsten Swing Releases nicht mehr unterstützt wird, hab ich mich also auf den XMLEncoder/XMLDecoder gestürzt.

Wenn ich also meine JComboBox als XML-Datei abspeichern will, mit:
Code:
	private void save_JComboBox() {
		XMLEncoder e = null;
		try {
			e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(HOME.concat("/Test.xml"))));
			e.writeObject(jComboBox);
		} catch (FileNotFoundException fnfe) {
			// TODO Auto-generated catch block
			fnfe.printStackTrace();
		}
		e.close();
	}

Dann erhalt ich folgendes Ergebnis:
Code:
<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.4.2_03" class="java.beans.XMLDecoder"> 
 <object class="javax.swing.JComboBox"> 
  <void property="preferredSize"> 
   <object class="java.awt.Dimension"> 
    <int>31</int> 
    <int>20</int> 
   </object> 
  </void> 
  <void property="editable"> 
   <boolean>true</boolean> 
  </void> 
  <void property="editor"> 
   <void property="item"> 
    <object id="DropDownObject0" class="kb.DropDownObject"/> 
   </void> 
  </void> 
  <void property="model"> 
   <void property="selectedItem"> 
    <object idref="DropDownObject0"/> 
   </void> 
   <void method="addElement"> 
    <object class="kb.DropDownObject"/> 
   </void> 
   <void method="addElement"> 
    <object class="kb.DropDownObject"/> 
   </void> 
   <void method="addElement"> 
    <object class="kb.DropDownObject"/> 
   </void> 
   <void method="addElement"> 
    <object class="kb.DropDownObject"/> 
   </void> 
   <void method="addElement"> 
    <object class="kb.DropDownObject"/> 
   </void> 
   <void method="addElement"> 
    <object idref="DropDownObject0"/> 
   </void> 
  </void> 
  <void property="renderer"> 
   <void property="background"> 
    <object class="javax.swing.plaf.ColorUIResource"> 
     <int>255</int> 
     <int>255</int> 
     <int>255</int> 
    </object> 
   </void> 
   <void property="location"> 
    <object class="java.awt.Point"> 
     <int>-682</int> 
     <int>-17</int> 
    </object> 
   </void> 
   <void property="text"> 
    <string>lcfd</string> 
   </void> 
  </void> 
 </object> 
</java>

Das Problem ist jetzt, daß die "kb.DropDownObject" Objecte nicht mit abgespeichert werden. Das heißt, beim nächsten Laden steht für jedes "kb.DropDownObject" ein leerer Eintrag in der ComboBox.

Wie kann man dieses Problem lösen.

Danke!

Craven
 
G

Guest

Gast
Hallo,

hmm, einfacher wird es, wenn Du das Model serialisierst. Wahrscheinlich - falls Du nichts selbst gebastelt hast - steckt in Deiner JComboBox ein DefaultComboBoxModel, das ist ganz normal serialisierbar.
Du erhälst das Model mit getModel() und setzt es wieder mit setModel(...).
Die selbst eingegebenen Daten speicherst Du doch im Model?

Gruß,

Karl
 

Craven

Aktives Mitglied
Hallo Leute!

Jetzt hab ich zwar ein gefülltes "DefaultComboBoxModel", was sich auch prima serialisieren läßt, allerdings werden mir beim Laden der Daten, aus der Datei, diese nicht angezeigt.

Ich lade also mein Model mit "setModel()" und es werden mir nur 5 (soviele Objecte habe ich serialisiert) leere Felder in der JComboBox angezeigt.

Die Objecte, die ich serialisiere, haben eine "String toString()" Methode und implementieren Serialisable.

Ich weiß nicht mehr weiter.

Habt Ihr eine Idee?

Gruß
Craven
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
antonia09 Einkaufszettel Persistenz und Serialisierung Allgemeine Java-Themen 6
D Serialisierung und Deserialisierung von Objekten - Frageprogramm Allgemeine Java-Themen 4
R Datentypen Korrekte integer in Hex ASCII Konvertierung und serialisierung Allgemeine Java-Themen 1
M Serialisierung funktioniert nicht Allgemeine Java-Themen 9
Z Best Practice Serialisierung Allgemeine Java-Themen 2
Arif Input/Output Serialisierung - Datei wird nicht erzeugt Allgemeine Java-Themen 3
M Alternative zur Serialisierung.. Protobuf? Allgemeine Java-Themen 9
E Serialisierung - Deserialisierung Allgemeine Java-Themen 4
Thallius Serialisierung schlägt fehl. Allgemeine Java-Themen 3
M Serialisierung & Verschlüsselung Allgemeine Java-Themen 2
E Serialisierung - Sinn einer generierten serialVersionUID? Allgemeine Java-Themen 4
V Serialisierung von Instanz eigener Klasse Allgemeine Java-Themen 5
A Input/Output Serialisierung und Object.hashCode() Allgemeine Java-Themen 3
K Serialisierung einer verschachtelten Datenstuktur Allgemeine Java-Themen 9
Tobse Input/Output Dateiformat: Serialisierung VS Custom format Allgemeine Java-Themen 6
A Problem bei Serialisierung von Bibliotheks-Klassen Allgemeine Java-Themen 6
A Input/Output Serialisierung Sonderzeichen Allgemeine Java-Themen 3
P Serialisierung der Oberklasse Allgemeine Java-Themen 2
Kr0e Circular reference - Serialisierung Allgemeine Java-Themen 6
K Serialisierung in Properties-Datei möglich? Allgemeine Java-Themen 3
B Serialisierung mit Unterobjekten über Netzwerk Allgemeine Java-Themen 3
C Serialisierung - Standardwert für nachträglich hinzugefügtes Feld Allgemeine Java-Themen 2
S Serialisierung der Kindklasse Allgemeine Java-Themen 5
K Serialisierung komplett selbst machen Allgemeine Java-Themen 13
C Serialisierung ohne Serializable Allgemeine Java-Themen 4
S Serialisierung und Referenzen Allgemeine Java-Themen 6
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
E Objekt bei Serialisierung ändern Allgemeine Java-Themen 2
Q Serialisierung / Speicherung Geschwindingkeit & Aktuelle Position Allgemeine Java-Themen 7
Z Serialisierung und Deserialisierung einer HashMap Allgemeine Java-Themen 17
W Serialisierung Allgemeine Java-Themen 6
K Serialisierung von Hashmap in Vector Allgemeine Java-Themen 3
F Serialisierung und Obfuscation? Allgemeine Java-Themen 7
G (De)serialisierung und Referenzen Allgemeine Java-Themen 5
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
J Serialisierung: readInt + writeInt Allgemeine Java-Themen 4
X Einige Fragen zu Serialisierung Allgemeine Java-Themen 2
J bean + serialisierung + serialVersionUID Allgemeine Java-Themen 3
K Serialisierung Allgemeine Java-Themen 6
thE_29 Wie funktioniert Serialisierung? Allgemeine Java-Themen 10
S Problem mit Serialisierung Allgemeine Java-Themen 2
G JComboBox XYZ uses unchecked or unsafe operations Allgemeine Java-Themen 1
FrittenFritze Problem mit einer JComboBox, Event temporär deaktivieren Allgemeine Java-Themen 11
P Variablen Auf durch for-Schleife generierte JComboBox zugreifen Allgemeine Java-Themen 3
S Unchecked cast from Component to JComboBox<String> Allgemeine Java-Themen 3
Luk10 Frage zu JComboBox und GridLayout Allgemeine Java-Themen 3
C Swing JComboBox - Problem mit der Darstellung des Inhaltes Allgemeine Java-Themen 9
I jComboBox itemlänge Allgemeine Java-Themen 7
MQue JComboBox in JTable Allgemeine Java-Themen 4
G JComboBox getSelectedItem Zeit Allgemeine Java-Themen 5
D Locale mit JCombobox umschalten Allgemeine Java-Themen 19
E JComboBox Allgemeine Java-Themen 3
V JComboBox und Wertevergleich. Allgemeine Java-Themen 2
D JComboBox - SelectedIndex Allgemeine Java-Themen 6
P JComboBox Array unterscheiden Allgemeine Java-Themen 3
E JComboBox und JTextFeld mischen Allgemeine Java-Themen 2
T JComboBox simulieren Allgemeine Java-Themen 9
C JCombobox ImageIcon & Text Allgemeine Java-Themen 2
G JComboBox mit aufklappbarem JPanel? Allgemeine Java-Themen 13
G JComboBox mit Werten aus einer Access Datenbank füllen Allgemeine Java-Themen 18
B JComboBox-Eintrag ohne Enter aktualisieren Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben