我想从我的代码中选择 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);
关于Java JTree - setSeelectionPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20060997/