Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTree:如何获取所选节点的路径_Java_Swing_Jtree - Fatal编程技术网

Java JTree:如何获取所选节点的路径

Java JTree:如何获取所选节点的路径,java,swing,jtree,Java,Swing,Jtree,有没有一种方法可以像使用 String pathForNode = JTree.getLastSelectedPathComponent().getPath().toString(); 编辑: 试一试 我用了这个: jTreeVarSelectedPath = ""; Object[] paths = jTreeDirectorios.getSelectionPath().getPath(); for (int i=0; i<paths.length; i++)

有没有一种方法可以像使用

String pathForNode = JTree.getLastSelectedPathComponent().getPath().toString();

编辑:

试一试

我用了这个:

    jTreeVarSelectedPath = "";
    Object[] paths = jTreeDirectorios.getSelectionPath().getPath();
    for (int i=0; i<paths.length; i++) {
        jTreeVarSelectedPath += paths[i];
        if (i+1 <paths.length ) {
            jTreeVarSelectedPath += File.separator;
        }
    }
jTreeVarSelectedPath=”“;
Object[]path=jTreeDirectorios.getSelectionPath().getPath();
对于(int i=0;i

tree.addTreeSelectionListener(新建TreeSelectionListener()){
公共作废值已更改(TreeSelection事件e){
TreePath TreePath=e.getPath();
System.out.println(“Java:+treepath.getLastPathComponent());
对象元素[]=treepath.getPath();
for(int i=0,n=elements.length;i”+元素[i]);
//showMessageDialog(null,“->”+元素[i]);
//lblNewLabel.setText(“>”+元素[i]);
值+=元素[i]+“\\”;
}
//字符串x=字符串.valueOf(值);
//lblNewLabel.setText(String.valueOf(value));
showMessageDialog(null,值);
//系统输出打印项次(值);
}
});
静态字符串值=”;//在void主函数之前添加此值

在C#.net中,获取路径通常很简单,对我来说也有点直观。

这似乎只适用于我在JTree上的第一次单击,这不适用于其余的单击…你知道为什么吗?如果你重新初始化了树,这将只起作用一次。请随意发布代码。另请参阅。谢谢你。我这就是我讨厌JTree的原因。方法
getPath()
getPath().toString()
应该可以做到这一点。。。
  tree.addMouseListener(new MouseAdapter() {
      public void mouseClicked(MouseEvent me) {
        doMouseClicked(me);
      }
    });
  }

  void doMouseClicked(MouseEvent me) {
    TreePath tp = tree.getPathForLocation(me.getX(), me.getY());
    if (tp != null) {
      System.out.println(tp.toString());
    }
  }
    jTreeVarSelectedPath = "";
    Object[] paths = jTreeDirectorios.getSelectionPath().getPath();
    for (int i=0; i<paths.length; i++) {
        jTreeVarSelectedPath += paths[i];
        if (i+1 <paths.length ) {
            jTreeVarSelectedPath += File.separator;
        }
    }
     tree.addTreeSelectionListener(new TreeSelectionListener() {
        public void valueChanged(TreeSelectionEvent e) {
            TreePath treepath = e.getPath();
            System.out.println("Java: " + treepath.getLastPathComponent());
            Object elements[] = treepath.getPath();
               for (int i = 0, n = elements.length; i < n; i++) {
                   System.out.print("->" + elements[i]);

         // JOptionPane.showMessageDialog(null,"->"+elements[i]);
         //lblNewLabel.setText(">"+ elements[i]);



           value+=elements[i]+"\\";


        }



        //String x=String.valueOf(value);            
        //lblNewLabel.setText(String.valueOf(value));

        JOptionPane.showMessageDialog(null, value);


        //System.out.println(value);
        }
    });

  static String value="";    //add this just before the void main function