SingleFrameApplication, который не требует ALT для активации мнемоники меню?

В IDE NetBeans 6.9, если вы создаете New Project >> Java >> Java Desktop Application и запустить его, вы обнаружите, что пункты меню имеют мнемонику, но только после ALT нажата.
(Сама программа NetBeans использует этот стиль меню.)

Тем не менее, если вы создаете новый File >> Swing GUI Forms >> JFrame Formи добавьте простую строку меню с мнемоникой, затем запустите JFrame, мнемоника всегда будет отображаться без нажатия ALT, Это то, что я бы предпочел.
(Firefox использует этот стиль меню)

Я думаю, что org.jdesktop.application переопределяет настройку по умолчанию, но это только предположение. Кто-нибудь знает, как сделать SingleFrameApplication не требуется ALT быть нажатым?

Благодарю.

Изменить: Была обнаружена проблема в том, что JFrame и JDesktop используют разные взгляды и ощущения по умолчанию

1 ответ

Решение

Это настройка Windows. В XP перейдите по ссылке:

  1. Панель управления
  2. дисплей
  3. Внешность
  4. Последствия
  5. Скрывайте подчеркнутые буквы для навигации по клавиатуре, пока я не нажму клавишу Alt

(Полагаю, в Win7 где-то должна быть похожая настройка.)

Настройка по умолчанию включена, поэтому Java работает правильно, а Firefox - неправильно (даже Office 2003 не учитывает эту настройку).

Снимите этот флажок, и вы всегда будете видеть мнемоническое подчеркивание в Java.

Обратите внимание, что только Windows LAF правильно соблюдает настройки. Мотив и Металл всегда показывают подчеркивание. Я не использую NetBeans или jDesktop, но полагаю, что он использует системный LAF, и поэтому подчеркивание является правильным.

Если вы все еще хотите всегда показывать подчеркивание в Windows LAF (подумайте дважды, прежде чем это сделать), позвоните UIManager.getLookAndFeelDefaults().put("Button.showMnemonics", false), который, кажется, не работает для XP, потому что WindowsMenuItemUI#paintTextпроверяет только флаг под Vista. Вы можете проверить Win7 JDK самостоятельно.


Обратите внимание, что при включенной настройке существует общепринятая ошибка, которая выглядит следующим образом (это экономит ваше время на анализ 2-й самой ужасной системы отслеживания ошибок в мире. Самым плохим является внутренняя система ColdFusion, которую имела моя компания): например, создать одно меню с мнемоникой &File, Нажмите Alt-F, отпустите, нажмите Alt-F опять подчеркивание пропало. Они вернутся, как только вы сделаете что-нибудь еще, нажав или просто нажав Alt само собой.

Другие вопросы по тегам