JTree Knoten Öffnen - PER Programm

Status
Nicht offen für weitere Antworten.

pro_evo

Aktives Mitglied
Hi all,


ich habe links einen JTree und Rechts im Split Pane ein JTable, das die Dateien anzeigt.
(wie im Datei Explorer)

Man kann nun nicht nur durch klicken auf die Knoten den Table verändern, sondern auch wenn man im Table auf einen Ordner klickt .

Jetzt mächte ich den JTree anpassen sprich den jeweiligen Knoten öffnen ... ich habe eigentlich alles was ich brauche also was geklickt wurde, aber mit welcher Methode öffne ich den passenden Knoten ?

hier meine Fehlsversuche :

Code:
tab.addMouseListener (new MouseAdapter() {
			public void mouseClicked(MouseEvent e)  {
				String geklickt = ((ordnerTable)tab).reinDa();
				System.out.println("Geklickt: "+geklickt);
				//TreePath []neu = {aktuell,new TreePath(geklickt)};
				//baum.setSelectionPaths(neu); // erzeugt EVENT ?? ROFL -> KOTZ
				
				//TreePath neu = new TreePath (geklickt);
				//baum.setAnchorSelectionPath(neu); 
				// MAN WIE KANN ICH DEN SCH*** TREE MAL ÄNDERN !!
				};
			});

vielen Dank im Voraus
 

pro_evo

Aktives Mitglied
danke gut zu wissen :)

Jetzt müsste ich nur noch den TreePath richtig aufbauen koennen ....


Diese Methode is ja leider protected (weiß der Liebe Gott warum) :(
Code:
protected 	TreePath(TreePath parent, Object lastElement)
          Constructs a new TreePath, which is the path identified by parent ending in lastElement.
Aber genau die würde ich - glaube ich - brauchen oder ?

Das hab ich zur Verfügung :
Code:
System.out.println("Geklickt: "+geklickt);		
				aktuell = baum.getSelectionPath();
				TreePath neu = new TreePath (geklickt);
System.out.println("Neu:"+neu+"  Aktuell: "+aktuell);

und das kommt als Ausgabe :
Code:
Geklickt: Internet
Neu:[Internet]  Aktuell: [E:\, Documents]
 

pro_evo

Aktives Mitglied
hmm ok habs Selbst versucht ,umständlich aber Müsste gehen :


Code:
String geklickt = ((ordnerTable)tab).reinDa();
				System.out.println("Geklickt: "+geklickt);
			
				//baum.setSelectionPaths(neu); // erzeugt EVENT ?? ROFL -> KOTZ
				
				aktuell = baum.getSelectionPath(); // TreePath
				System.out.println("Aktuelles PfadFeld: "+aktuell);
				int pfadZahl = aktuell.getPathCount();
				
				Object []pfadFeld = new Object[pfadZahl+1];
				for (int i =0; i<pfadZahl; i++) {
					pfadFeld[i] = aktuell.getPathComponent(i);
				}
				// Letztes von Hand rein:
				pfadFeld[pfadZahl] = geklickt;
				TreePath neu = new TreePath(pfadFeld);
				
				System.out.println("Neues PfadFeld: "+neu);

				
				baum.expandPath(neu);

Die Ausgabe sieht korrekt aus, trotzdem wirft das Programm ne Exception :(

Code:
Geklickt: Bundesliga_Rotating_ Adboards
Aktuelles PfadFeld: [E:\, Downloads, PES4]
Neues PfadFeld: [E:\, Downloads, PES4, Bundesliga_Rotating_ Adboards]
java.lang.ClassCastException
	at javax.swing.tree.DefaultTreeModel.isLeaf(Unknown Source)
	at javax.swing.JTree.expandPath(Unknown Source)

Woran liegt das ?
 

pro_evo

Aktives Mitglied
niemend ne Lösung ?

hier mein neuster Versuch , er klappt zwar aber is teilweise verbuggt, weil halt der aktuell Tree Patch manchmal auch nen anderer is wenn man im Tree was anderes markiert hat :(

Code:
public void mouseClicked(MouseEvent e)  {
				int row = ((ordnerTable)tab).reinDa(); // int row = JTable.getSelectedRow();
				System.out.println("ROW: "+row);
				if (row != -1 ) {
					aktuell = baum.getSelectionPath(); // TreePath
					
					if (aktuell == null) 
						baum.setSelectionRow(0);
						
					TreePath neu = aktuell.pathByAddingChild(myNode.getChildAt(row));
					baum.expandPath(neu); 
					
					lab.setText(neu.toString());
				}
				else lab.setText("Hast auf ne Datei geklickt.");
 

AlArenal

Top Contributor
Die Vorgehensweise über JTree#expandNode(TreePath path) ist ja richtig. Den Path musst du dir natürlich selbst zusammenstricken.

Ich nutze immer eigene Implementierungen von TreeModel und meine Objekte führen selbst Buch über ihre Beziehungen. So hole ich mir einfach meinen Ziel-Node (habe ja die Daten ja meis irgendwo in einer Collection stehen) und baue mir den path über Objekt#getParent() zusammen. Der ist dann natürlich falschrum, wird einmal gedreht, TreePath draus gemacht - lá voilá!

Ist ne Sache von ein paar Zeilen Code. Da man sowas öfter mal braucht bietet es sich an seinem eigenen Model eine passende Methode TreePath getPathToRoot(Objekt obj) zu verpassen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
T JTree, Knoten mehrmals verwenden AWT, Swing, JavaFX & SWT 5
M JTree mit eigenen Knoten - Zugriff auf Daten AWT, Swing, JavaFX & SWT 6
C Knoten anzeigenb eim DnD in einem JTree AWT, Swing, JavaFX & SWT 4
H JTree - nach Auswahl aus JFileChooser wird nur der erste Knoten angezeigt AWT, Swing, JavaFX & SWT 3
Z Jtree Knoten ändern AWT, Swing, JavaFX & SWT 5
S JTree - Knoten mit animiertem GIF/Icon AWT, Swing, JavaFX & SWT 5
algorismi Knoten im JTree deaktivieren AWT, Swing, JavaFX & SWT 4
B JTree - pro Knoten kann nur ein Blatt eingefügt werden AWT, Swing, JavaFX & SWT 5
G JTree Knoten ein / ausblenden AWT, Swing, JavaFX & SWT 3
P JTree Knoten schliessen AWT, Swing, JavaFX & SWT 16
S JTree rendern der Knoten [+] und [-], nicht der Node Icons AWT, Swing, JavaFX & SWT 2
G JTree: mehrere Knoten selektieren! AWT, Swing, JavaFX & SWT 2
S JTree, Knoten anhand eines Pfades öffnen? AWT, Swing, JavaFX & SWT 2
masta // thomas JTree - Knoten ausblenden. AWT, Swing, JavaFX & SWT 3
S Blätter oder Knoten im JTree ordnen AWT, Swing, JavaFX & SWT 3
D JTree - Knoten einfügen und automatisch in den Editiermodus AWT, Swing, JavaFX & SWT 2
G JTree -- Node nach ändern in anderen Knoten AWT, Swing, JavaFX & SWT 15
L nur den JTree Knoten auf der Console ausgeben? AWT, Swing, JavaFX & SWT 6
W JTree, bei Drag Over über den Knoten "markieren" AWT, Swing, JavaFX & SWT 3
S JTree hinzugefügte Knoten anzeigen AWT, Swing, JavaFX & SWT 9
K Frage zu einem älteren Beitrag: JTree letzter Knoten auswähl AWT, Swing, JavaFX & SWT 2
G Knoten im Jtree mit unterscheidlichen Farben darstellen AWT, Swing, JavaFX & SWT 5
S Knoten im JTree hinzufügen/löschen mit eigenem Jtree AWT, Swing, JavaFX & SWT 8
R JTree: TreeCellRenderer und Selektion eines Knoten AWT, Swing, JavaFX & SWT 10
G JTree - einzelnen Knoten löschen AWT, Swing, JavaFX & SWT 11
M Freiraum zwischen Knoten im JTree AWT, Swing, JavaFX & SWT 14
B Sichtbare Knoten im aktuellen Viewport eines JTree AWT, Swing, JavaFX & SWT 4
D Knoten in JTree ausblenden. AWT, Swing, JavaFX & SWT 12
M JTree - Wie kann man einen einzelnen Knoten deselektieren? AWT, Swing, JavaFX & SWT 3
T Knoten in Jtree anders darstellen AWT, Swing, JavaFX & SWT 2
P JTree: Alle Knoten geöffnet anzeigen AWT, Swing, JavaFX & SWT 2
M Einen Knoten im JTree zusammenklappen? AWT, Swing, JavaFX & SWT 6
M JTree: Wie einen Knoten editieren? AWT, Swing, JavaFX & SWT 5
X JTree: Selektion nach dem Entfernen von Knoten AWT, Swing, JavaFX & SWT 2
W JTree Knoten oder Blatt AWT, Swing, JavaFX & SWT 3
W JTree löschen & überprüfen von Knoten oder Blatt AWT, Swing, JavaFX & SWT 3
W JTree Knoten irgendwo hinzufügen AWT, Swing, JavaFX & SWT 2
FrittenFritze JTree, LazyLoading und "Rückwärtstraversion" AWT, Swing, JavaFX & SWT 3
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
F Jtree aus Klasse mit Arraylisten AWT, Swing, JavaFX & SWT 1
A Swing JList zu JTree AWT, Swing, JavaFX & SWT 11
RalleYTN Modaler Dialog und JTree Node mit sehr... seeeeehr vielen Elementen AWT, Swing, JavaFX & SWT 6
Z Swing JTree DefaultMultipleTreeNode Repräsentation ändern AWT, Swing, JavaFX & SWT 1
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
W Swing Anzeigefehler bei JTree AWT, Swing, JavaFX & SWT 1
S Zwei JTree, ein Model, bei Selection im ersten JTree soll der zweite die Inhlate anzeigen AWT, Swing, JavaFX & SWT 2
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
H Swing JTree: Zählt der rootNode mit? AWT, Swing, JavaFX & SWT 2
krgewb Swing JTree - Farbe von nodes ändern AWT, Swing, JavaFX & SWT 4
R JTree behandeln AWT, Swing, JavaFX & SWT 2
U dynamisches JTree erstellen AWT, Swing, JavaFX & SWT 2
J JTree updaten AWT, Swing, JavaFX & SWT 2
H JTree in JScrollPane passt sich nicht an Größe von JPanel an AWT, Swing, JavaFX & SWT 2
T Swing API Frage zu Verzeichnisbäumen und JTree AWT, Swing, JavaFX & SWT 1
T JTree mit Symbolen? AWT, Swing, JavaFX & SWT 8
R Anfängerfrage: Ansichten des JTree AWT, Swing, JavaFX & SWT 1
H Swing JTree Minimumgröße AWT, Swing, JavaFX & SWT 2
F Swing JTree + DiffUtils // Markierung Nodes aufheben AWT, Swing, JavaFX & SWT 2
I JTree wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Swing JTree AWT, Swing, JavaFX & SWT 4
M Nodes in JTree nicht anzeigen AWT, Swing, JavaFX & SWT 0
T JTree mit Cloud verbinden AWT, Swing, JavaFX & SWT 0
H JTree Probleme AWT, Swing, JavaFX & SWT 9
F Swing Drag and Drop in JTree aus verschiedenen Listen AWT, Swing, JavaFX & SWT 6
M JButton wird von JTree überdeckt AWT, Swing, JavaFX & SWT 4
J Auf Dateien in JTree zugreifen AWT, Swing, JavaFX & SWT 15
F jTree.startEditingAtPath(path); funktioniert nicht bei eigenem CellEditor? AWT, Swing, JavaFX & SWT 8
D Swing JTree Steuerung AWT, Swing, JavaFX & SWT 11
S Swing JTree verwirrt mich AWT, Swing, JavaFX & SWT 2
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
J JTree speichern AWT, Swing, JavaFX & SWT 4
N Swing JTree TreeCellRenderer mit html und automatischen Zeilenumbruch AWT, Swing, JavaFX & SWT 8
O Swing JTree um Label (oder Panel) erweitern AWT, Swing, JavaFX & SWT 9
B JTree mit Ordneransicht in JPanel einbinden AWT, Swing, JavaFX & SWT 4
D JTree node reagiert bei Klick nicht immer AWT, Swing, JavaFX & SWT 2
M Swing JTree: Wie kann ich die Hintergrundfarbe der selection ändern?!?! AWT, Swing, JavaFX & SWT 7
D Mehrmals auf Node im JTree klicken AWT, Swing, JavaFX & SWT 2
D JSplitPane, Jtree, CardLayout (constraint must be a string) AWT, Swing, JavaFX & SWT 9
N Swing FileFilter lässt JTree sich nicht öffnen AWT, Swing, JavaFX & SWT 2
X Swing 2 TreeModel und ein JTree synchronisieren AWT, Swing, JavaFX & SWT 3
N Swing JTree TreePath zu Windows Pfad? AWT, Swing, JavaFX & SWT 2
RELAXccc Swing JTree + JScrollPane, refresh Problem AWT, Swing, JavaFX & SWT 17
X Swing JTree aktualisieren AWT, Swing, JavaFX & SWT 2
V Swing JTree - Umbenennen selbst handlen. AWT, Swing, JavaFX & SWT 2
E Übergebenem JTree Blätter hinzufügen AWT, Swing, JavaFX & SWT 2
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
A Swing JTree - Nodes expanden AWT, Swing, JavaFX & SWT 2
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
B JTree AWT, Swing, JavaFX & SWT 9
T Menüacceleratoren verschwinden bei JTree AWT, Swing, JavaFX & SWT 5
1 Swing JTree collapse child nodes AWT, Swing, JavaFX & SWT 4
B JTree - sehr individuell AWT, Swing, JavaFX & SWT 3
G Swing JTree - Verbindungslinien entfernen AWT, Swing, JavaFX & SWT 4
A Swing Herausfinden ob bei JTree Klick auf "+"/"-" anahnd x,y AWT, Swing, JavaFX & SWT 2
S Swing JTree und seine Listener... AWT, Swing, JavaFX & SWT 4
L Swing JTree wird nicht selektiert AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben