我正在为 IntelliJ IDEA 开发一个插件,它显然使用了 Swing。
对于我介绍的一项功能,我想阻止使用 JCheckBoxMenuItem
的 JPopupMenu
失去焦点并关闭。
您可以看到它的实际效果。
我已经调试了代码,但我不知道如何做到这一点,而且我不熟悉 Swing。
您能否向我指出有用的监听器/代码块/防止这种情况的方法?
如果您想查看代码,IntelliJ 类是
ActionPopupMenuImpl.MyMenu
ActionMenuItem
最佳答案
编辑:需要找到更好的方法,因为
只需以良好的方式协调您的代码即可;)uiRefreshed
事件并不总是在正确的时间调用。
IDEA中的Swing机制太复杂了,也许还是别碰比较好。只需知道鼠标事件由特殊的监听器处理,然后重定向到组件即可。
也就是说,按住菜单ActionButton
。您可以以编程方式监听 Lookup
的 uiRefreshed
事件:
myMenuButton.click()
仅此而已。
您需要在刷新 UI 后调用它,因为 LookupUi
的尺寸或位置可能已更改。
关于java - 阻止 Swing 弹出窗口失去焦点并关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61160547/