JTree aus txt

P

Proggo

Gast
Hallo, ich zerbreche mir gerade den Kopf, wie ich aus einer txt einen JTree erstelle. Aufgebaut wird der tree in der txt durch das Tabulator Zeichen (die Abstände). Ich hoffe ihr versteht was ich meine.

Bsp.:

Anfänglich habe ich versucht die Tabs zu zählen und dann die nodes durch getLastLeaf,getPriviousNode usw. an den root node zu hängen. Naja, das klappt nur zur Hälfte.

Könnt ihr mir helfen?
 

Michael...

Top Contributor
So pauschal würde ich sagen: Hängt davon ab ;-)
Ist denn in jeder Zeile ein kompletter pfad von Wurzel bis Blattknoten (Tabulator getrennt) gelistet?
Ist das ganze sortiert oder ungeordnet?
Grundsätzlich kann man ja immer so Vorgehen, dass man zunächst prüft ob und wie weit ein bestehender Pfad im Baum schon abgebildet ist und die fehlenden Zweige ggf. ergänzt.

Bei konkreteren Informationen könnte man evtl. auch konkretere Tipps geben.
 
P

Proggo

Gast
Ach ich hatte das Beispiel vergessen^^

root
----node
--------node
--------node
------------node
----node
--------node
....

Also 4 Striche sind jetzt mal ein Tab.
 

Michael...

Top Contributor
Ich denke so etwas liese sich ganz gut rekursiv umsetzen. (Kein Wunder bei einem Baum ;-))
Für den Anfang ist es aber vermutlich einfacher die Zeilen iterativ einzulesen.

Ich nehme mal an Deine Knoten basiseren auf TreeNode z.B. DefaultMutableTreeNode.
Es dürfte ausreichen, sich die Tab Anzahl der Vorgängerzeile und den aktuellen Knoten zu "merken".

So ganz grob überlegt:
Zeile Einlesen:
- hat sie mehr Tabs als die vorhergehende dem aktuellen Knoten einen Kindknoten hinzufügen. Der aktuelle Knoten bleibt gleich
- hat sie genauso viele Tabs wie die vorhergehende Zeile mit getParent den Parentknoten des aktuellen Knotens holen und diesem einen neuen Kindknoten hinzufügen. Der neue Kindknoten wird aktueller Knoten
- hat sie weniger Tabs wie die vorhergehende Zeile. Entsprechend dem Delta der Tab Anzahl via getParent zum passenden Knoten navigieren und diesem einen neuen Kindknoten hinzufügen. Der neue Kindknoten wird aktueller Knoten
 
P

Proggo

Gast
Ich hatte da schon was gebastelt, aber bitte nicht lachen ;)

Code:
public TreeNode imp(){
	
	DefaultMutableTreeNode root = new DefaultMutableTreeNode();
	
	try {
		BufferedReader reader = new BufferedReader(new FileReader("tree.txt"));
		
		try {
			String line;
			String rootline;
			char bs='\t';
			int count=0;
			int i=0;
			//Wurzelknoten hinzufügen
			if((rootline=reader.readLine())!=null){
			
			root = new DefaultMutableTreeNode(rootline.replaceAll("\t", ""));

			while((line=reader.readLine())!=null){
			
				//tabs zählen
				for(i=0;line.charAt(i)==bs;i++){
					if(line.charAt(i)!=bs)
						break;
				}
				//Tabulator Zeichen entfernen
				line=line.replaceAll("\t", "");				
	
				if(i<count)	
				break;
				if(i>count)
					root.getLastLeaf().add(new DefaultMutableTreeNode(line));
				
				//das funktioniert nicht
				if(i==count)
					root.getLastLeaf().getPreviousNode().add(new DefaultMutableTreeNode(line));
				
				count=i;


bei if(i==count) habe ich schon das Problem, dass er natürlich nur ein node zurück geht. Er müsste aber zum parentnode gehen. Ich hoffe, ich drücke mich richtig aus^^
Und bei if(i<count) weiß ich auch noch nicht, wie ich verfahren soll :(
 

Michael...

Top Contributor
ich würde mir zusätzlich zu
Code:
count
auch den Knoten merken in den zuletzt einfügt wurde, so kann man recht einfach vor und zurück navigieren.
 
P

Proggo

Gast
Hallo, i==count sieht jetzt so aus:

Code:
				if(i==count){
					parent=((DefaultMutableTreeNode)root.getLastLeaf().getParent());
					parent.add(new DefaultMutableTreeNode(line));
				}

Ich komme aber bei i<count nicht weiter. Wie komme ich denn ?iterativ? zu einen parent mittem im Baum? Du meinstest "via getParent". Aber ich weiß nicht wie das gehen soll, da bin ich wohl zu blöde.
 

Michael...

Top Contributor
bei
Code:
i < count
kann man sich einfach in einer for Schleife ca. (count - i) Mal per getParent von Knoten zu Knoten hangeln.
Aber wie gesagt, ich würde mir den Knoten merken, in den zuletzt eingefügt wurde. Dann müsste man bei
Code:
i==count
gar nichts machen, ausser dem aktuell gemerkten Knoten einen neuen hinzuzufügen.
 
P

Proggo

Gast
Das ist mir gestern auch schon durch den Kopf geschwirrt, dachte ich aber das sei nicht die beste Lösung. Dann versuche ich es so...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
J ActionListener von JCheckBox im Knoten von JTree funktioniert nicht Java Basics - Anfänger-Themen 2
F Jtree kürzt Namen auf ... Java Basics - Anfänger-Themen 4
H Collections JTree remove zeigt keinen Effekt! Java Basics - Anfänger-Themen 8
H Best Practice Wo wird der rootNode eines JTree gespeichert... Java Basics - Anfänger-Themen 0
H Erste Schritte JTree: Instanzen einer Klasse speichern oder Namen/Strings... Java Basics - Anfänger-Themen 4
R JTree bewegen Java Basics - Anfänger-Themen 6
I JTree, Root-Name ändern Java Basics - Anfänger-Themen 4
N Dynamisch JTree erstellen Java Basics - Anfänger-Themen 3
G bestimmte dateiendungen in jtree rausfiltern Java Basics - Anfänger-Themen 7
M Warum wird mein Icon bei den JTree Nodes nicht angezeigt? Java Basics - Anfänger-Themen 7
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
M JTree + JTab Java Basics - Anfänger-Themen 3
T JTree füllen Java Basics - Anfänger-Themen 3
B JTree knoten wird nicht übernommen Java Basics - Anfänger-Themen 4
S JTree Hilfe Java Basics - Anfänger-Themen 6
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M JTree ohne root anzeigen Java Basics - Anfänger-Themen 5
F JTree mit JSpinner Java Basics - Anfänger-Themen 2
I Liste von Dateien anzeigen/JTree Java Basics - Anfänger-Themen 4
G Zugriff auf JTree-Objekt Java Basics - Anfänger-Themen 2
K Problem: JTree mit integrierten JCheckboxen Java Basics - Anfänger-Themen 5
B OOP Jtree aus TreeMap<String, String[]> erstellen? Java Basics - Anfänger-Themen 6
D JTree ich dreh durch :D Java Basics - Anfänger-Themen 2
T JTree root setzten Java Basics - Anfänger-Themen 13
G xml Datei in JTree Java Basics - Anfänger-Themen 2
S JTree, Problem mit View Update Java Basics - Anfänger-Themen 2
R Problem mit JTree und JTable Java Basics - Anfänger-Themen 16
A JTree drucken Java Basics - Anfänger-Themen 2
M JTree und ein Button mit ActionListener Java Basics - Anfänger-Themen 3
G Verständnisproblem --> JTree Java Basics - Anfänger-Themen 6
G Filesystem in JTree anzeigen Java Basics - Anfänger-Themen 4
A Jtree Aufbau Java Basics - Anfänger-Themen 5
G JTree ilstener Java Basics - Anfänger-Themen 3
G JTree Java Basics - Anfänger-Themen 2
G Erstellten JTree aus einer XML-Datei akktualisieren Java Basics - Anfänger-Themen 11
S jTree initialisierung Java Basics - Anfänger-Themen 4
F Doppelklick-Event auf JTree Java Basics - Anfänger-Themen 5
J ArrayListen mit Name und Vater an JTree übergeben Java Basics - Anfänger-Themen 3
G aussehen vom jtree wiederherstellen Java Basics - Anfänger-Themen 3
P JTree mit mehreren Wurzeln Java Basics - Anfänger-Themen 2
G Umbenennen im JTree Java Basics - Anfänger-Themen 5
G rechter Mausklick im JTree Java Basics - Anfänger-Themen 2
G Bilder im jTree Java Basics - Anfänger-Themen 3
G jTree Pfad merken Java Basics - Anfänger-Themen 2
S JTree aktualisieren Java Basics - Anfänger-Themen 4
M JTree aktualisieren Java Basics - Anfänger-Themen 3
E JTree - Element suchen Java Basics - Anfänger-Themen 5
G JTree Problem. Java Basics - Anfänger-Themen 5
G JTree Java Basics - Anfänger-Themen 2
E JTree - Verzeichnisbaum Java Basics - Anfänger-Themen 3
G JTree Frage Java Basics - Anfänger-Themen 5
G Ebene von JTree ermitteln? Java Basics - Anfänger-Themen 6
G Icons für JTree skalieren? Java Basics - Anfänger-Themen 3
G Standard JTree ausblenden? Java Basics - Anfänger-Themen 5
B JTree mit Verzeichnissen füllen Java Basics - Anfänger-Themen 17
G Object vor reload von JTree merken und danach wieder setzen? Java Basics - Anfänger-Themen 5
P Wert aus JTree in ComboBox setzen? Java Basics - Anfänger-Themen 2
G Problem mit Refresh von JTree Java Basics - Anfänger-Themen 11
lomtas Scrollbalken für JTree Java Basics - Anfänger-Themen 3
lomtas JTree Struktur im Nachhinein ändern Java Basics - Anfänger-Themen 2
K JTree verlinken Java Basics - Anfänger-Themen 3
T ArrayList mit Dateien in die richtigen Ordner eines JTree Java Basics - Anfänger-Themen 16
K JTree aus DB rekursiv füllen Java Basics - Anfänger-Themen 12
M Dateisystem in Jtree - Ordnericon darstellen Java Basics - Anfänger-Themen 4
G JTree vollständigen pfad anzeigen Java Basics - Anfänger-Themen 11
R JTree aus einer ArrayList Java Basics - Anfänger-Themen 9
J JTree Bilder Java Basics - Anfänger-Themen 2
G JTree.TreeListener Java Basics - Anfänger-Themen 12
S JTree valueChanged() Ausgabe leider immer mit Pfadangabe! Java Basics - Anfänger-Themen 4
S JTree aktualisieren bzw. komplett neu aufbauen Java Basics - Anfänger-Themen 6
G Scrollen im JTree Java Basics - Anfänger-Themen 17
G Hintergrundsfarbe für JTree Java Basics - Anfänger-Themen 15
F JTree-Knoten (DefaultMutableTreeNode) formatieren ? Java Basics - Anfänger-Themen 3
Y JTree: ein Knoten als Objekt Java Basics - Anfänger-Themen 2
J JTable / JTree: Unsichtbare Elemente Java Basics - Anfänger-Themen 4
G JTree Explorer Problem mit listRoots() Java Basics - Anfänger-Themen 9
V Jtree: Alle Verzeichnisse und Ordner anzeigen, aber wie? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben