gpt4 book ai didi

java - 停用监听器

转载 作者:行者123 更新时间:2023-12-01 07:39:39 24 4
gpt4 key购买 nike

我有一个关于听众的一般性问题。

假设我有两个 JTabbedPane,并且都有一个 ChangeListener。它们都显示出来,我希望它们都显示相同的 Pane (索引),这样当用户更改其中一个 Pane 中的选定 Pane 时,其他 Pane 也会发生变化。
简而言之,一个 JTabbedPane 监听器使用 setSelectedTab() 更改另一个 JTabbedPane
显然,第一个监听器将激活第二个监听器,第二个监听器将在无休止的操作中重新激活第一个监听器。

这将通过 boolean 值来解决。
有更聪明的方法吗?
有没有办法在不触发监听器的情况下更改选项卡?
有没有办法仅在用户更改监听器而不是代码时激活监听器?

谢谢。

顺便说一句:我总是对按钮有同样的疑问。但使用按钮时,我从监听器获取代码并将其放入方法中。当“一个按钮”需要激活一个按钮时,它会调用其代码。但在 JTabbedPane 中则不同。

最佳答案

简单的解决方案是仅在必要时采取行动。例如:

if(currentTab != desiredTab) {
// change tab
}

这将防止无限循环。

如果您需要能够打开和关闭该行为,那么使用 boolean 标志并不是一个坏方法。另一种方法是使用 removeChangeListener 删除监听器。 。该标志可能性能更高,因为它可以避免内存分配和释放,但很大程度上取决于您情况的其他细节。

关于java - 停用监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6776276/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com