Äquivalent zu JTree

Status
Nicht offen für weitere Antworten.

tuomo

Aktives Mitglied
Hallo Zusammen,

ich hab ein bissl kniffliges Problem.
Ich habe eine Reihe von Datentypen, welches z.B. auch als Collection gehändelt werden können.

Code:
class MyInteger implements MyValues {
 int value;
 static String type = "Integer";
 static UUID id = UUID.randomUUID();

 ...
}

class MyString implements MyValues {
 String value;
 static String type = "String";
 static UUID id = UUID.randomUUID();

 ...
}

class MyCollection implements MyValue{
 ArrayList<MyValues> list;
 static String type="Collection of ..."
 static UUID = UUID.randomUUID();

 ...
}

Nun ist es so, dass ich auch eine Collection vom Typ Collection anlegen können muss. Alles noch nicht schwer.
Auch das abspeichern in einem XML-File, stellt kein Problem dar.

Aber wie kann ich dieses XML-File wieder auslesen, um mir meine Objekte wieder herzustellen?
Ich verwende für das Auslesen ein SAX-Parser, da die Dateien sehr groß werden und ein DOM-Parser, Aufgrund das er das gesamte Dokument vorhält, recht resourcen-intensiv ist. Das Problem dabei ist, dass das Dokument ja nur einmal gelesen wird, ich aber meine Objekte erst dann wieder herstellen kann, wenn ich weiß, was wo zu gehört.

Nun hatte ich die Idee, das XML-File à la JTree abzuspeichern und dann rekursiv aufzulösen. Aber ich hab kein Äquivalent gefunden. Ich dachte an sowas wie eine TreeMap, aber da kann ich keine Vorgänger bzw. Nachfolger abspeichern.

Hat jemand eine Idee, wie oder mit was ich das Problem lösen könnte?

Danke an Alle!
 

HeRaider

Aktives Mitglied
Hm das was du willst hört sich für mich doch sehr stark nach nem DOM-Baum an. Suchen kannst dann im DOM auch sehr leicht durch XPath. Schau dir die beiden Sachen mal genauer an.
 
G

Gelöschtes Mitglied 5909

Gast
du kannst statt SAX auch StAX (Streaming api for xml) verwenden.
Der Parser brauch dabei auch sehr wenig speicher und ist seit dem jdk 1.5 enthalten oder unter http://stax.codehaus.org/ zu finden
 

Ariol

Top Contributor
Nur eine Idee, aber vielleicht hilft dir auch dass weiter:

Code:
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class XMLTest
{
	public static void main(String[] args) throws IOException
	{
		File file = new File("test.xml");
		FileOutputStream fos = new FileOutputStream(file);
		XMLEncoder enc = new XMLEncoder(fos);

		for (int i = 0; i < 100; i++)
		{
			enc.writeObject(new JButton("b1"));
			enc.writeObject(new JLabel("Label"));
			enc.writeObject(new JPanel());
			enc.writeObject(new JFrame());
		}

		enc.close();
		fos.close();

		FileInputStream fis = new FileInputStream(file);
		XMLDecoder dec = new XMLDecoder(fis);

		Object o = dec.readObject();
		while (o != null)
		{
			try
			{
				identify(o);
				o = dec.readObject();
			}
			catch (ArrayIndexOutOfBoundsException aioobe)
			{
				o = null;
			}
		}
		dec.close();
		fis.close();
	}

	private static void identify(Object object)
	{
		if (object instanceof JButton)
		{
			System.out.println("JButton");
		}
		else if (object instanceof JLabel)
		{
			System.out.println("JLabel");
		}
		else if (object instanceof JPanel)
		{
			System.out.println("JPanel");
		}
		else
		{
			System.out.println("Object");
		}
	}
}

Nicht besonders hübsch, weil 5Min-Lösung ;-) Sorry
 

tuomo

Aktives Mitglied
Ich danke allen Drei'n. :)

Tut mir Leid, dass ich mich erst heute melden kann, aber mein Tagesgeschäft hat das leider nicht ehr zugelassen.

Ich werde mich jetzt mit euren Vorschläge befassen. Mal sehn ob und wie ich weiter komme.

Nochmals vielen Dank!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bananabert Swing jtree : image als user object Allgemeine Java-Themen 2
F JTree: Nodes dynamisch anlegen via LinkedHashMap Allgemeine Java-Themen 2
E Swing Jtree Allgemeine Java-Themen 9
R JTree - Mehrere Roots Allgemeine Java-Themen 6
DStrohma Icons in JTree Nodes weiter nach rechts rücken Allgemeine Java-Themen 2
M JTree aktualisieren nach Mausklick Allgemeine Java-Themen 12
DStrohma Jede node in JTree mit eigenem Icon Allgemeine Java-Themen 7
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
S JAVA JTree rekursiv umschreiben Allgemeine Java-Themen 5
S Suche im JTree nach Neuaufbau Allgemeine Java-Themen 4
N JTree nicht genutzte Pfade schließen Allgemeine Java-Themen 2
G JTree Node löschen Allgemeine Java-Themen 2
G JTree Node verschieben Allgemeine Java-Themen 2
MQue leerer JTree Allgemeine Java-Themen 6
MQue JTree Allgemeine Java-Themen 6
MQue JCheckBox in JTree Allgemeine Java-Themen 2
F JTree in Jsp Allgemeine Java-Themen 2
C JTree: ActionListener auf die Nodes Allgemeine Java-Themen 3
M JTree mit Rechtsklick markieren Allgemeine Java-Themen 4
C JTree: Nodes automatisch öffnen Allgemeine Java-Themen 2
P JTree/ Nodes einfügen Allgemeine Java-Themen 2
P JTree Allgemeine Java-Themen 6
P aus JTree eine XML- Datei Allgemeine Java-Themen 6
P Vector auf JTree Allgemeine Java-Themen 6
P JTree Farbe Allgemeine Java-Themen 14
S JTree selektion erkennen und drauf reagieren Allgemeine Java-Themen 2
E JTree (schonwieder) - TreeCellEditor Allgemeine Java-Themen 9
E JTree - einzelnes Element (Knoten) editieren Allgemeine Java-Themen 2
E JTree - Selektieren mit Rechtsklick Allgemeine Java-Themen 15
P JTree ID vergeben Allgemeine Java-Themen 3
P JTree Allgemeine Java-Themen 4
P JTree/ JTabbedPane Allgemeine Java-Themen 34
L JTree Allgemeine Java-Themen 23
E root JTree Allgemeine Java-Themen 2
E Child in JTree hinzufügen Allgemeine Java-Themen 4
E JTree in NetBeans Allgemeine Java-Themen 2
R Objekt an Knoten von JTree anhaengen Allgemeine Java-Themen 2
R Daten aus Baum entsprechend in jTree einfuegen Allgemeine Java-Themen 2
T Jtree zu langsam beim klappen Allgemeine Java-Themen 8
S JTree - Brett vor'm Kopp Allgemeine Java-Themen 19
G Baumhierarchie in JTree eintragen Allgemeine Java-Themen 4
K JTree - Knoten expandieren Allgemeine Java-Themen 4
K JTree Inhalt löschen und Anzeige aktualisieren Allgemeine Java-Themen 13
G JTree automatisch sortieren lassen Allgemeine Java-Themen 5
Luma Diskettenlaufwerk rattert los bei Eintrag in JTree Allgemeine Java-Themen 6
G in Jtree suchen Allgemeine Java-Themen 2
K JTree plus eigener FileLoader Allgemeine Java-Themen 2
H Wie stellt ein JTree fest, wo etwas eingehängt werden soll? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben