我正在使用分层菜单试图使其可滚动。是的,我知道 Java Tips Weblog 上的 Menu Scroller,但它并不能完全满足我的要求,所以我一直在处理它的精简版本,但我并没有完全让它工作。
基本上我想要一个包含太多项目的 JMenu 来显示,用户可以在其上按向上和向下箭头键来滚动菜单。我已经非常接近我想要的,但我遇到了一个障碍,我可以用这种方式来最好地描述它:
当弹出菜单具有焦点时按下 [ENTER] 时,默认行为是执行与所选项目相关联的操作并处理菜单。如果菜单是嵌套的,层次结构中它上面的弹出窗口也会关闭(变得不可见)。这种行为在哪里编码?我已经查看了 JMenu、JPopupMenu、JMenuItem、AbstractButton,但我没有看到我在寻找什么。执行这种常见行为的 Swing 源代码在哪里?
如果我知道答案,我可能会理解为什么我的实现不起作用。我可以执行此操作,但菜单及其父项不会消失。当然,我可以通过 setVisible(false) 使菜单消失,但我无法通过包含层次结构找到父菜单并使它们消失。