我有一个 JTree、一个 JTable 和一个 JList,它们显示同一组对象,但顺序不同且信息不同。如果从一个组件中选择一个项目,我想在其他两个组件上选择相同的对象(意味着它们应该突出显示)。当然,我用监听器监视选择事件。问题是,当组件检索选定的对象时,我必须通过调用其他组件的选择方法来确保在其他组件上选择该对象。然后,这将通知其他两个组件上的选择监听器。但是这些事件中的每一个都会依次调用除自身之外的组件上的选择事件,从而导致三个组件之间出现无限循环。
我看到一种解决方案是使用 boolean 标志,并且如果设置了该标志,则使监听器不会传播选择。然而,这看起来很麻烦而且不优雅。有没有一种方法可以简单地告诉 JTree、JTable 和 JList 进行选择,但不触发任何事件(而不是触发事件,然后使用 boolean 标志捕获并停止它)?
最佳答案
看看SharedModelDemo 。我认为它符合您的要求。
关于java - JTree 选择而不生成事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5213704/