簡體   English   中英

單擊樹時如何從 JTree 獲取節點路徑?

[英]how to get node path from JTree when tree is clicked?

我有幾個節點的樹,還為此創建了一個樹監聽器,現在我需要在單擊它時獲取特定的節點路徑,我已經嘗試過這段代碼但沒有得到准確的輸出有人可以幫助我嗎?

public class FTListener implements TreeSelectionListener {


    @Override
    public void valueChanged(TreeSelectionEvent e) {
        TreePath[] tree=new TreePath[e.getNewLeadSelectionPath().getPathCount()];
        int i=0;

        tree=e.getPaths();

        for(TreePath tr:tree){
            System.out.println(tree[i]);
        i++;}

        //getPath() returns the array elements so i'm here using 
    //for loop for printing each elements.

這是輸出

[/Desktop, /home/user/Desktop, /home/user/Desktop/1302677132563_USER_MANUAL_SMS_BANKING.pdf]
[/Desktop, /home/user/Desktop, /home/user/Desktop/Lab090C .java~]

做這個

public void valueChanged(TreeSelectionEvent e) {

    DefaultMutableTreeNode node = (DefaultMutableTreeNode)
                       tree.getLastSelectedPathComponent();

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

    Object nodeObject = node.getUserObject();
    System.out.println("Selected node : " + nodeObject);
}

如果您只想單選,請添加此選項

tree.getSelectionModel().setSelectionMode
        (TreeSelectionModel.SINGLE_TREE_SELECTION);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM