gpt4 book ai didi

java - 设置新的 TreeModel 时如何自动扩展 JTree?

转载 作者:太空狗 更新时间:2023-10-29 22:36:14 26 4
gpt4 key购买 nike

我有一个自定义的 JTree 和一个自定义的 JModel;当我给它一个新模型时,我希望 JTree 能够“自动扩展”。目前,它只是将所有节点折叠到根。

这是一个例子:

private class CustomTree extends JTree {

@Override
public boolean isExpanded(TreePath path) {
return ((Person) path.getLastPathComponent).hasChildren();

}

private class CustomTreeModel extends TreeModel {

// ... omitting various implementation details

@Override
public boolean isLeaf(Object object) {
return !((Person) object).hasChildren();
}

}

Model model = new Model();
Person bob = new Person();
Person alice = new Person();
bob.addChild(alice);
model.setRoot(bob);
JTree tree = new CustomTree(new CustomTreeModel(model));

此时,树正确显示:

- BOB
- ALICE

其中 Alice 是 Bob 的 child (在数据和可视化树中)

但是,如果我调用:

tree.setModel(new CustomTreeModel(model));

一切都折叠起来了:

+ BOB

有没有办法在设置新模型时“自动展开”树中的所有内容?

最佳答案

以下对我有用(在设置新模型后调用):

for (int i = 0; i < tree.getRowCount(); i++) {
tree.expandRow(i);
}

关于java - 设置新的 TreeModel 时如何自动扩展 JTree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210979/

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