2012-01-23 5 views
0

Я пытаюсь построить дерево узлов checkbox.Флажок «Узел дерева»

Моя спецификация заключается в том, что мне нужен родительский узел, а также флажок, а не папка, например значок.

Я понял, что дерево узлов по умолчанию, установленное по умолчанию, будет значком папки для родительского узла и флажком для листового узла.

Любые предложения относительно того, как я могу это достичь?

+0

расширить узел UI класс, который вы используете, и переопределите метод paint(), или создайте свой собственный класс узлов пользовательского интерфейса. – 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

Смежные вопросы