How to get focus in JPopupMenu

…衆ロ難τιáo~ 提交于 2019-12-07 02:59:30

问题


I am an experienced Java programmer, but a Swing newbie so please bear with me.

I wish to have a JPopupWindow which has keyboard focus. I want to respond to arrow keys, escape (to close the menu) and Enter (to invoke the item). Must I add a KeyListener to the menu and code all this myself, or is there some sort of "mode" I can set to activate this behavior which seems like it ought to be standard.

The standard Swing tutorial section on JPopupMenus speaks only of mnemonics and accelerators. I don't particularly want those.

Hard to believe that this is totally against the grain of JPopupMenu.

What is best way to get something like I want implemented?


回答1:


Once you do jpopupMenu.show(Component invoker, int x, int y)it will automatically respond to keyboard as you want. If this is not working then you might need to fix some other issue i.e some other component is snatching away focus from the menu when it should not etc.




回答2:


Instead of KeyListener, I'd recommend adding Action instances to your JPopupMenu. Use setComponentPopupMenu() to add the popup to your panel.



来源:https://stackoverflow.com/questions/8507521/how-to-get-focus-in-jpopupmenu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!