JTree valueChanged() Ausgabe leider immer mit Pfadangabe!

Status
Nicht offen für weitere Antworten.

spidermobile

Bekanntes Mitglied
Hallo zusammen,

ich habe eine JTree erstellt. Bei Auswahl eines Nodes möchte ich zur weiteren Verarbeitung den Dateinamen des ausgewählten Nodes erhalten. Leider bekomme ich immer den Pfad mitgeliefert. Wie kann ich dies unterbinden.

Code:
root = new File(PathOSFinder.getTreePath());
		
model = new FileTreeModel(root);
tree = new JTree(model);
tree.addTreeSelectionListener(this);
scrollpane = new JScrollPane(tree);

...

public void valueChanged(TreeSelectionEvent event) {
     tree.getLastSelectedPathComponent().toString();
     // Hier wird leider immer der Dateiname incl. Pfadangabe ausgegeben!!!
}
 

Mag1c

Top Contributor
Hi,

das hängt von der Implementierung deines TreeModels und deiner Knoten ab. Wenn du da irgendwo File-Objekte drunter liegen hast, mußt du dir ebendieses für den selektierten Knoten besorgen und bekommst dann mit File#getName den Namen.

Und nebenbei: warum nimmst du nicht den Pfad aus dem TreeSelectionEvent ?

Gruß
Mag1c
 

spidermobile

Bekanntes Mitglied
Hi Mag1c,

danke für die Info. Ich gebe offen zu, dass ich die Implementierung von JTree hier aus dem Forum habe. Da ich mich mit dem JTree nicht so gut auskenne, :oops: weiss ich leider nicht, was ich nun verändern muss.

Den Pfad benötige ich nicht. Ich benötige als Wert nur den Dateinamen.
 

spidermobile

Bekanntes Mitglied
So wie ich das mittlerweile verstanden habe, muss ich was im JTree-Model ändern. Nur was?

Code:
package project;

import java.io.File;
import java.util.Vector;

import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;

class FileTreeModel implements TreeModel {
	protected File root;
	public Vector vector = null;
	StringBuffer save; 
	
	public FileTreeModel(File root) { 
		this.root = root; 
	
		save = new StringBuffer();
		save.append("<html><head><title>" + root + "</title></head> \n");
		save.append("<body>" + "\n");
		save.append("<table>" + "\n");
	}

	public Object getRoot() { return root; }

	public boolean isLeaf(Object node) {  return ((File)node).isFile(); }

	public int getChildCount(Object parent) {
		String[] children = ((File)parent).list();
		if (children == null) return 0;
	return children.length;
	}

	public Object getChild(Object parent, int index) {
		String[] children = ((File)parent).list();
		if ((children == null) || (index >= children.length)) return null;
	return new File((File) parent, children[index]);
	}

	public int getIndexOfChild(Object parent, Object child) {
		String[] children = ((File)parent).list();
		if (children == null) return -1;
			String childname = ((File)child).getName();
			for(int i = 0; i < children.length; i++) {
				if (childname.equals(children[i])) return i;
			}
			return -1;
	}

	public void valueForPathChanged(TreePath path, Object newvalue) {}

	public void addTreeModelListener(TreeModelListener l) {}
	public void removeTreeModelListener(TreeModelListener l) {}
	
	
	  public void traverse( TreeModel tm, Object parent ) {
		  // System.out.println( "PARENT:" + parent ); 		// Verzeichnisse und Dateien
		  int children = tm.getChildCount( parent );
		  // System.out.println( "children:" + children );		// Wenn = 0, dann unterste Ebene
		  if (children == 0) 
			  save.append("<tr><td><td><a href=\"file:///" + parent + "\">" + parent + "</a>
</td></td>" + "\n");
		  else
			  save.append("<tr><td>[b]" + parent + "[/b]
</td>" + "\n");

		  for ( int i = 0; i < children; ++i ) {
			  traverse( tm, tm.getChild( parent, i ));
		  }
	  }
  
	  public String getSaveDate() {
		  save.append("</table>" + "\n");
		  save.append("</body></html>");
		  return save.toString();
	  }
}
 

spidermobile

Bekanntes Mitglied
Hab eben Hilfe bekommen. So kann ich mein Problem lösen:


Code:
((File)tree.getLastSelectedPathComponent()).getName()
 
Status
Nicht offen für weitere Antworten.
Ä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
P JTree aus txt Java Basics - Anfänger-Themen 8
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 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
M valueChanged() in ListSelectionListener Java Basics - Anfänger-Themen 2
K SQL Befehl in valueChanged() ausführen Java Basics - Anfänger-Themen 8
T ListSelectionListener --> valueChanged wird 2x ausgeführt Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0

Ähnliche Java Themen

Neue Themen


Oben