我有一个需要在加载数据时填充的 JTree。我用 DefaultTreeModel 创建树
final DefaultTreeModel treeModel = new DefaultTreeModel(root);
jTree1 = new JTree(treeModel);
其中 root 是一个 MutableTreeNode 实现。当我需要显示的数据被更改或添加时,触发了一个监听器,它调用
public void exStateAdded(final ExState parent, ExState child) {
final ExStateTreeNode exStateTreeNode = new ExStateTreeNode(child);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
treeModel.insertNodeInto(exStateTreeNode, root, root.getChildCount());
}
});
调试器显示,插入被调用,但树本身并不反映更改。如果我称reload()
树已绘制,但它也会折叠所有节点。模型正在更改并且节点已正确添加。我错过了什么?