PDA

Visualizza la versione completa : [JAVA] JTree Personalizzato


cat82
09-01-2006, 11:30
Salve a tutti,ho creato un JTree personalizzato per inserirmi delle icone particolari.
Attualmente quando seleziono un nodo del mio JTree mi ritorna la stringa contenuta nel nodo tramite il codice


rubTree.getLastSelectedPathComponent().toString();

Ora mi chiedo se c'è un modo per inserire non visualizzandolo anche l'id del record del campo che carico come nodo nel JTree.
E viceversa come fare quando seleziono un nodo a saperne il relativo id senza che debba ogni volta dalla stringa ricevuta selezionarmi il record corrispondente perchè se ho due stringhe uguali nn so quale effettivamente ho scelto.
Grazie a tutti

Andrea1979
09-01-2006, 11:42
Non ho esperienza con i JTree, però leggendo le API credco che potresti passare attraverso TreePath (passandogli l'Object rubTree.getLastSelectedPathComponent()) e quindi risalire alla riga con getRowForPath(TreePath)

cat82
09-01-2006, 12:17
Ma cosi mi pare di capire che mi viene restituito l'indice di riga del nodo presente nel mio JTree mentre io ho bisogno di qualche cosa che mi permetta di ricevere l'id impostato (non so come in fase di caricamento) che sarà univoco per tutta la tabella del db.
Grazie cmq.

cat82
10-01-2006, 15:42
Nessuno??? :dhò:

Andrea1979
10-01-2006, 16:07
Ciao... allora dovresti implementare meglio la classe di oggetti con cui popoli il jtree... ad esempio, con un metodo getId e un toString appropriati in modo da avere una rappresentazione tipo stringa e un facile accesso alla proprietà id che ti serve con getLastSelectedPathComponent

cat82
13-01-2006, 09:50
Ok, grazie mille.
Domanda: C'è un qualche metodo che mi consente di eliminare il contenuto attuale del mio JTree per poi attraverso la mia funzione che mi crea il jTree ricaricarlo?
Adesso lo creo cosi:

InserisciValori_Tree();//funzione per la creazione JTree
Tree = new JTree(TreeTop);

dove
private DefaultMutableTreeNode TreeTop contiene la mia struttura del JTree.
Perchè devo fare il refresh del JTree quando un utente apporta delle modifiche.
Ciao e grazie
:confused:

Andrea1979
13-01-2006, 10:09
Dovresti leggere qui (http://java.sun.com/docs/books/tutorial/uiswing/components/tree.html) , in particolare il paragrafetto "Dynamically Changing a Tree", che riporta proprio un esempio di modifica di un nodo esistente e di aggiunta di un nodo ad un JTree

cat82
25-01-2006, 12:01
Ciao, il mio problema però è un po'diverso, ho solo bisogno di richiamare un metodo nel mio programma principale che mi aggiorni il jTree.Non c'è qualche metodo gia presente nel componente come per esempio nelle JTable che ti consente di ricaricarle come il setDataVector(cells, columnNames)?
Grazie :dhò: :cry:

cat82
02-02-2006, 11:38
Attulmente nn l'ho ancora risolto,qualcuno si? :dhò:

Loading