2012-01-23 110 views
0

我一直在试图构造一个复选框节点树。复选框节点树

我的规范是,我需要父节点也是一个复选框,而不是象图标这样的文件夹。

我已经意识到,默认复选框节点树将是父节点的文件夹图标和叶节点的复选框。

有关我如何实现它的任何建议?

+0

延长UI节点您正在使用的类并重写paint()方法,或者创建您自己的自定义UI节点类。 – Adrian

回答

2

嗨,我认为你需要像followng图像,其中节点还包含了复选框

就可以实现它如下:

String[] strs = {"swing",  // 0 
    "platf",  // 1 
    "basic",  // 2 
    "metal",  // 3 
    "JTree"}; // 4 

CheckNode[] nodes = new CheckNode[strs.length]; 
for (int i=0;i<strs.length;i++) { 
    nodes[i] = new CheckNode(strs[i]); 
} 
nodes[0].add(nodes[1]); 
nodes[1].add(nodes[2]); 
nodes[1].add(nodes[3]); 
nodes[0].add(nodes[4]); 
nodes[3].setSelected(true); 
JTree tree = new JTree(nodes[0]); 
tree.setCellRenderer(new CheckRenderer()); 
tree.getSelectionModel().setSelectionMode(
    TreeSelectionModel.SINGLE_TREE_SELECTION 
); 

refer full example