我有一个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);
,它现在可以正常工作了。