阻止Swing弹出窗口失去焦点并关闭

时间:2020-04-11 17:00:14

标签: java swing intellij-idea

我正在为IntelliJ IDEA开发一个插件,该插件显然使用了Swing。
对于我介绍的一项功能,我想阻止使用JPopupMenu的{​​{1}}失去焦点并关闭。
您可以看到它的运行情况。

enter image description here

我已经调试了代码,但是我不知道该怎么做,因为我不是那个到Swing。
您能否指出我有用的侦听器/代码块/方式来防止这种情况?

如果您想查看代码,则IntelliJ类是

JCheckBoxMenuItem

1 个答案:

答案 0 :(得分:0)

编辑:需要找到一种更好的方法,因为uiRefreshed事件并非总是在正确的时间调用。 只需很好地协调您的代码;)


IDEA中的Swing机制太复杂了,最好不要碰它。只是知道鼠标事件是由特殊的侦听器处理的,然后重定向到组件。

也就是说,按住菜单ActionButton。您可以通过编程方式收听Lookup的{​​{1}}事件:

uiRefreshed

仅此而已。
您需要在刷新UI后调用它,因为myMenuButton.click() 的尺寸或位置可能已更改。

enter image description here

相关问题