如何在JPopupMenu中获得焦点

我是一名经验丰富的Java程序员,但是一个Swing新手所以请耐心等待。

我希望有一个具有键盘焦点的JPopupWindow。 我想响应箭头键,转义(关闭菜单)和回车(调用项目)。 我必须在菜单中添加一个KeyListener并自己编写所有这些,或者是否有某种“模式”我可以设置来激活这种行为,这似乎应该是标准的。

JPopupMenus上的标准Swing教程部分仅讲述助记符和加速器。 我并不特别想要那些。

很难相信这完全违背了JPopupMenu的细节。

什么是获得我想要实现的东西的最佳方法?

一旦你做了jpopupMenu.show(Component invoker, int x, int y)它会自动响应你想要的键盘。 如果这不起作用,那么你可能需要修复一些其他问题,即一些其他组件在它不应该等时从菜单中抢走焦点等。

我推荐将Action实例添加到JPopupMenu ,而不是KeyListener 。 使用setComponentPopupMenu()将弹出窗口添加到面板。