Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JTree: how to get the text of selected item?

Tags:

java

swing

How can I get the text of selected item in a JTree?

like image 700
stighy Avatar asked Nov 21 '10 20:11

stighy


2 Answers

From Java tutorial website on JTree:

//Where the tree is initialized:
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

//Listen for when the selection changes.
tree.addTreeSelectionListener(this);

public void valueChanged(TreeSelectionEvent e) {
    //Returns the last path element of the selection.
    //This method is useful only when the selection model allows a single selection.
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();

    if (node == null)
    //Nothing is selected.  
    return;

    Object nodeInfo = node.getUserObject();

    if (node.isLeaf()) {
        BookInfo book = (BookInfo) nodeInfo;
        displayURL(book.bookURL);
    } else {
        displayURL(helpURL);
    }

}
like image 154
Artur Avatar answered Oct 15 '22 05:10

Artur


DefaultMutableTreeNode selectedElement 
   =(DefaultMutableTreeNode)tree.getSelectionPath().getLastPathComponent();
.....
System.out.println(selectedElement.getUserObject()); 

//For multiple selection you can use
TreePath[] treePaths = tree.getSelectionModel().getSelectionPaths();
for (TreePath treePath : treePaths) {
     DefaultMutableTreeNode selectedElement = (DefaultMutableTreeNode)treePath.getLastPathComponent();
     Object userObject = selectedElement.getUserObject(); //Do what you want with selected element's user object
}
like image 21
baybora.oren Avatar answered Oct 15 '22 03:10

baybora.oren