我正在研究一个分层菜单,试图使其可滚动。是的,我在 Java Tips Weblog 上了解了 Menu Scroller,但它并不能完全满足我的要求,所以我一直在研究它的精简版本,但还没有完全让它发挥作用。
基本上,我想要一个包含太多项目的 JMenu,用户可以在其中按向上和向下箭头键滚动菜单。我已经非常接近我想要的东西,但我遇到了一个障碍,我可以这样最好地描述它:
当弹出菜单具有焦点时按下 [ENTER],默认行为是执行与所选项目关联的操作并释放菜单。如果菜单是嵌套的,则层次结构中位于其上方的弹出窗口也会关闭(变得不可见)。此行为在哪里编码?我已经浏览了 JMenu、JPopupMenu、JMenuItem、AbstractButton,但没有看到我在寻找什么。执行这种常见行为的 Swing 源代码在哪里?
如果我知道这个问题的答案,我可能会明白为什么我的实现不起作用。我可以执行该操作,但菜单及其父项不会消失。当然,我可以通过 setVisible(false) 使菜单消失,但我无法遍历包含层次结构来找到父菜单并使它们消失。
最佳答案
I can do the action, but the menu and its parents won't disappear.
我认为你可以使用:
MenuSelectionManager.defaultManager().clearSelectedPath()
关于java - Java Swing 源代码中的何处是菜单上 Enter 按键的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18223183/