当用方向键遍历JMenuBar时,跳过禁用的JMenu



我有一个Java应用程序,它的JFrame包含一个JMenuBar。我用的是Windows & f

当JMenuBar处于活动状态时,选中的JMenu将被高亮显示。用户可以通过按左/右箭头键移动到上一个/下一个JMenu。

我遇到的问题是禁用JMenus。在Windows中,使用箭头键遍历禁用的jmenu时不会跳过,也不会突出显示。当用户移动到一个禁用的JMenu时,没有任何视觉线索告诉他在哪里。

是否有办法修改JMenuBar的行为,使其跳过禁用的JMenus?

试图找出导航是如何完成的,我在看BasicPopupMenuUI在那里我发现两个方法称为next/previousEnabledChild(...)正在检查以下UIManager属性:

UIManager.getBoolean("MenuItem.disabledAreNavigable")
因此,在将LAF设置为windows之后,我添加以下代码行:
UIManager.put("MenuItem.disabledAreNavigable", Boolean.FALSE);

,它现在可以正常工作了。

相关内容

  • 没有找到相关文章