2

我正在使用分层菜单试图使其可滚动。是的,我知道 Java Tips Weblog 上的 Menu Scroller,但它并不能完全满足我的要求,所以我一直在处理它的精简版本,但我并没有完全让它工作。

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

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

如果我知道答案,我可能会理解为什么我的实现不起作用。我可以执行此操作,但菜单及其父项不会消失。当然,我可以通过 setVisible(false) 使菜单消失,但我无法通过包含层次结构找到父菜单并使它们消失。

4

2 回答 2

2

我可以执行此操作,但菜单及其父项不会消失。

我认为你可以使用:

MenuSelectionManager.defaultManager().clearSelectedPath() 
于 2013-08-14T04:44:03.017 回答
0

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

于 2013-08-14T04:41:55.263 回答