java - Swing JTree : It seems to be impossible to properly send treeStructureUpdated events to model listeners

标签 java swing jtree

我有一个显示我自己的 TreeModel 的 JTree。 TreeModel 是从数据库“按需”加载的(有点难看,因为部分是在 EDT 上完成的,但这不是我的问题)。有一个菜单允许用户选择要应用于树的过滤器。

更改过滤器时,节点可能会被 TreeModel 隐藏或新节点可能会显示出来。这就是我的问题所在 - 我看不到从模型中生成适当的 treeStructureChanged 事件的合理方法,因为我不知道哪些节点确实发生了变化。似乎没有简单的方法可以告诉听众整个模型现在(可能)不同了。

有没有一种简单的方法可以告诉所有 TreeModelListeners 整个模型已经更改? (当然我想尽量保留选择/展开状态)。

最佳答案

因为你想发出整个树结构已经改变的信号,发送一个TreeModelEvent对于每个听众的树根。 GenealogyModel方法 fireTreeStructureChanged()How to Use Trees: Creating a Data Model 中提到的示例.

关于java - Swing JTree : It seems to be impossible to properly send treeStructureUpdated events to model listeners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551651/

相关文章:

java - 在java中创建一个矩阵

Java Swing 将文件读取到文本字段

java - 如何创建 JTree ExpansionListener

java - 在 JTree 中获取属性 XML

java - 转换数组(Component 到 JMenuItem)不起作用

java - 使用不同的布局管理器不起作用

java - 以图形方式将按钮连接/链接在一起?

java - 当我尝试中断线程时 JFrame 卡住

java - 用户可以使用哪个属性将 JTree 的节点设置为复选框?

java - 如何检查java字符列表除了C或N之外还有其他值