2011-12-28 53 views
1

我正在使用MouseAdapter检查双击JTree节点。我想根据所选节点的级别采取一些不同的操作。我如何检查节点的级别?下面是对于听者的代码:JTree:检查选择的级别

private MouseAdapter getMouseAdapter(JTree jtree) { 
     final JTree tree = jtree; 
     return new MouseAdapter() { 

      @Override 
      public void mousePressed(MouseEvent e) { 
       TreePath selPath = tree.getPathForLocation(e.getX(), e.getY()); 
       if (selPath != null) { 
        if (e.getClickCount() == 2) { 
         String selectedNode = selPath.getLastPathComponent().toString(); 

       // >>>>> check on which level of the tree this node is   
        } 
       } 
      }}; 
    } 

回答

4

可以通过首先调用的selPathgetPath()方法和计算其长度从selPath向树根检查路径的长度。

Object[] array = selPath.getPath(); 
int depth = array.length; 
+0

最好链接到最新版本的JavaDocs。我编辑了您的答案以指向J2SE 7.有关获取最新文档链接的提示,请参见[优点2](http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7090875) 。 – 2011-12-28 22:54:45

+0

它的工作。谢谢 ! – Giannis 2011-12-28 23:18:36

0
TreePath path = tree.getSelectionPath(); 
int level = path.getPathCount(); 

TreePath manual page

+0

欢迎来到Stack Overflow,Shahriar。请阅读常见问题解答,了解如何标记代码块以使其格式正确,并考虑为解决方案添加解释,以帮助人们了解您所做的工作。 – Bobulous 2013-04-27 23:52:46