选择jtree中的所有复选框节点



我有一个基于命名向量构建的复选框节点树。我有一个叫全选的按钮。当我单击全选按钮时,我需要选中复选框节点树上的所有节点。

我使用的代码是

 for (CheckBoxNode rowNode: CheckBoxNodeTree. checkBoxCoulmn) 
{
   if(rowNode instanceof CheckBoxNode)
   rowNode.setSelected((true));
}

这里的checkBoxColumn是一个数组列表,它包含树的所有节点(Node,isSelected)。

但当我这样做的时候,树什么也没发生。

我通过将树节点强制转换为默认的可变树节点并获得子节点的枚举来完成这项工作。然后可以对它们进行迭代并设置Selected(true)。如果用户重复单击,您的方法可能会遇到线程问题或并发修改问题。

Enumeration<TreeNode> children = ((DefaultMutableTreeNode) node).breadthFirstEnumeration();
 while (children.hasMoreElements()) {
     TreeNode child = children.nextElement();
     Object currentNode = ((DefaultMutableTreeNode) child).getUserObject();
     //cast your currentNode to the check box and set selected or unselected.
 }

此外,您是否在事件dispath线程上执行此操作?如果没有,这可能就是你没有看到任何屏幕更新的原因。

最新更新