在JavaSwing源代码中,菜单上Enter键的实现在哪里?

在JavaSwing源代码中,菜单上Enter键的实现在哪里?,java,swing,keypress,custom-component,jmenu,Java,Swing,Keypress,Custom Component,Jmenu,我正在搞一个分级菜单,试图让它可以滚动。是的,我知道Java Tips博客上的菜单滚动器,但它并没有达到我想要的效果,所以我一直在使用它的精简版本,我不太想让它正常工作 基本上,我想要一个JMenu,其中显示的项目太多,用户可以按向上和向下箭头键滚动菜单。我已经非常接近我想要的,但我遇到了一个障碍,我可以用这种方式来最好地描述: 当在弹出菜单具有焦点时按下[ENTER]时,默认行为是执行与所选项目相关联的操作并处理菜单。如果菜单是嵌套的,则层次结构中其上方的弹出窗口也将关闭(变为不可见)。这种行

我正在搞一个分级菜单,试图让它可以滚动。是的,我知道Java Tips博客上的菜单滚动器,但它并没有达到我想要的效果,所以我一直在使用它的精简版本,我不太想让它正常工作

基本上,我想要一个JMenu,其中显示的项目太多,用户可以按向上和向下箭头键滚动菜单。我已经非常接近我想要的,但我遇到了一个障碍,我可以用这种方式来最好地描述:

当在弹出菜单具有焦点时按下[ENTER]时,默认行为是执行与所选项目相关联的操作并处理菜单。如果菜单是嵌套的,则层次结构中其上方的弹出窗口也将关闭(变为不可见)。这种行为编码在哪里?我在JMenu、jpopmpmenu、JMenuItem、AbstractButton上都找遍了,但没有看到我在找什么。执行这种常见行为的Swing源代码在哪里


如果我知道答案,我可能会理解为什么我的实现不起作用。我可以做这个动作,但是菜单和它的父母不会消失。当然,我可以通过setVisible(false)使菜单消失,但我不能遍历包含层次结构来找到父菜单并使其消失。

我对菜单不是100%确定,但我知道对于
JTextComponent
s,所有的按键(复制、粘贴、输入、按单词/句子/行向前移动、删除等)通过和实现
JTextcomponent
s也使用s,但我很确定这些都是特定于文本组件的

我可以做这个动作,但是菜单和它的父母不会消失

我认为你可以使用:

MenuSelectionManager.defaultManager().clearSelectedPath() 

它很可能出现在UI委托代码中……太棒了。正是我需要的!谢谢你,罗伯!谢谢你通读了我深奥的深夜问题,并说出了我所需要的。