我有一个需要在加载数据时填充的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()
,则会绘制树,但它也会折叠所有节点。模型正在变化,节点正确添加。我错过了什么?