gpt4 book ai didi

java - 以编程方式选择复选框节点的问题

转载 作者:行者123 更新时间:2023-12-02 07:59:27 24 4
gpt4 key购买 nike

我有一个以树结构列出的复选框组。该树与一个 vector 连接,该 vector 存储树中复选框的状态。我有按钮来选择所有复选框,还有其他按钮来选择相应的复选框。从下图中您可以想象出 UI。

enter image description here

for (CheckBoxNode Node : CheckBoxNodeTree.checkBoxRows) {
if(Node.isSelected()){
Node.setSelected(!Node.isSelected());
}

对于“全选”,使用的代码是:

TreeModel model = TREE.getModel();
TreeNode rootofTree = (TreeNode) model.getRoot();

Enumeration<TreeNode> enumeratorForTree = ((DefaultMutableTreeNode)rootofTree).breadthFirstEnumeration();
while (enumeratorForTree.hasMoreElements()) {
TreeNode child = enumeratorForTree.nextElement();
Object currentNode = ((DefaultMutableTreeNode) child).getUserObject();
if(currentNode instanceof CheckBoxNode) {

((CheckBoxNode) currentNode).setSelected(true);
}
}
for (CheckBoxNode Node: CheckBoxNodeTree.checkBoxRows)
{
Node.setSelected(true);
}

我现在面临的问题是,单击相应的按钮后,复选框状态会发生变化,但是单击“全选”按钮后,我可以看到节点被选中,但在此之后,如果我尝试选择使用相应按钮的单个节点,我在树上看不到结果。谁能帮我提出您的建议。提前感谢回复者。

最佳答案

看起来像一个通知问题 - 您正在更改节点状态,而模型不知​​道。假设您的模型是 DefaultTreeModel,请在更改选择后调用 model.nodeChanged:

currentNode.setSelected(newState);
model.nodeChanged(currentNode);

关于java - 以编程方式选择复选框节点的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123928/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com