JTree: how to get the text of selected item?

前端 未结 3 1941
春和景丽
春和景丽 2020-12-20 13:13

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

相关标签:
3条回答
  • 2020-12-20 13:18
    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
    }
    
    0 讨论(0)
  • 2020-12-20 13:20

    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);
        }
    
    }
    
    0 讨论(0)
  • 2020-12-20 13:32
    DefaultMutableTreeNode newchild=new DefaultMutableTreeNode(textField.getText());
    DefaultMutableTreeNode SelectedNode=       (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
    DefaultTreeModel treemodel=(DefaultTreeModel) tree.getModel();
    JOptionPane.showMessageDialog(null, SelectedNode.getUserObject().toString());
    if(SelectedNode!=null)
       treemodel.insertNodeInto(newchild, SelectedNode, SelectedNode.getChildCount());
    
    0 讨论(0)
提交回复
热议问题