Java JTree - setSeelectionPath

标签 java swing jtree

我想从我的代码中选择 JTree 中的一个节点。我正在调用方法 setSelectionPath 但没有任何反应。我的代码有什么问题?

public class test extends JFrame {

   private static DefaultMutableTreeNode  root, light, medium, dark, whiteNode;  

   private  static JTree tree;

   public static void main(String[] args){

    new test();

    tree.setSelectionPath(new TreePath(whiteNode.getPath()));



   }

   public test(){


      root = new DefaultMutableTreeNode("colors");

      tree = new JTree(root);


      light =  addFile("light", root); 
      medium = addFile("medium", root);
      dark = addFile("dark", root);

      //Add leaf nodes to light
      whiteNode = addFile("white", light);

      //Add leaf nodes to medium
      addFile("green", medium); 
      addFile("yellow", light);
      addFile("orange", light);
      addFile("violet", light); 

     this.getContentPane().add(tree);
     this.setVisible(true);
     this.validate();
     this.validateTree();

   }


    private DefaultMutableTreeNode addFile(String fname, DefaultMutableTreeNode parentFolder){

    DefaultMutableTreeNode newFile = new DefaultMutableTreeNode(fname);
    parentFolder.add(newFile);

    return newFile; 

}

}

提前致谢

最佳答案

该语句中构造函数使用的引用

TreePath t = new TreePath("colors, light, white");

需要引用最后一个路径组件,并且应该是TreePath类型而不是String:

tree.setSelectionPath(new TreePath(whiteNode.getPath()));

分配whiteNode的位置

whiteNode = addFile("white", light);

阅读:How to Use Trees

关于Java JTree - setSeelectionPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060997/

相关文章:

java - Amazon S3GeneratePresignedUrlRequest - 新文件

java - Eclipse 富客户端平台,添加 Textbox 或类似的

java - 仅使用合理的键在 JTable 单元格中开始编辑

java - 使来自 JPanel 的图形在 JPanel 外部可见

java - 自定义组件的 JTree 自定义单元格编辑器不响应首次单击

java - 如何检查鼠标单击事件中选择了哪个 JTree?

java - 守护进程未运行。现在在端口 5037 上启动它 * 无法打开 'nul' : The system cannot find the file specified

Java Swing 不同高度组件的水平布局

java - 为 JTree 中的 DefaultMutableTreeNode 分配唯一 ID?

java - 在 Selenium 测试中处理机器人类步骤的替代方法