首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JTree如何对更改的DefaultMutableTreeNode作出响应?

JTree如何对更改的DefaultMutableTreeNode作出响应?
EN

Stack Overflow用户
提问于 2012-06-17 15:20:21
回答 1查看 526关注 0票数 1

如果您在非EDT线程中更改DefaultMutableTreeNode的用户对象,那么在线程方面会发生什么呢?

我说的不是DefaultTreeModel事件,即insertNodeInto和removeNodeFromParent,我非常清楚,这些事件应该总是在EDT中运行。我想..。

在节点用户对象更改的情况下,JTree.TreeModelHandler似乎是“侦听”此类事件的对象.但是,是否有理由期望侦听器只被通知事件发生的线程中的这样一个更改?它的反应只会在同一条线上传播吗?

因此,显然,我假设这是一个相当基本的“观察者”模式。

那么,这是否意味着JTree节点中的大多数更改实际上必须发生在EDT中,否则就有可能在您预期的情况下发生不发生的事情?

在API for DefaultMutableTreeNode中,它确实表示“您必须自己进行同步”.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-17 17:14:53

Swing线程规则非常简单: Swing是单线程的,所有涉及Swing组件的操作都应该发生在EDT上。

因此,一旦在TreeModel上设置了包含DefaultMutableTreeNodeDefaultMutableTreeNode,您最好确保对模型(或节点的)所做的任何更改以及相应的事件发生在EDT上。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11072423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档