只是想弄清楚如果您在非 EDT 线程中更改 DefaultMutableTreeNode 的用户对象,就线程而言会发生什么?
我不是在谈论 DefaultTreeModel 事件,即 insertNodeInto 和 removeNodeFromParent,我很清楚它们应该始终在 EDT 中运行......我认为......
在节点的用户对象发生更改的情况下,似乎 JTree.TreeModelHandler 是“侦听”此类事件的东西......但是有理由期望侦听器只会被通知此类更改事件发生在哪里?并且只会在同一个线程中传播它的响应?
因此,显然,我假设这是一个相当基本的“观察者”模式。
那么这是否意味着 JTree 节点中的大多数更改实际上必须发生在 EDT 中,否则会有事情不会按您预期的时间发生的风险?
在 DefaultMutableTreeNode 的 API 中,它确实说“你必须自己进行同步”......