Есть ли способ установить подчеркивание мнемонического символа в собственном внешнем виде под Win 7?

Мой код:

fileMenu = new JMenu("File");
fileMenu.setMnemonic(KeyEvent.VK_F);
fileMenu.setDisplayedMnemonicIndex(0);

Javadocs для AbstractButton.setDisplayedMnemonicIndex() скажи это

Не все взгляды и чувства могут поддерживать это.

Я установил внешний вид на UIManager.getSystemLookAndFeelClassName()

И я не вижу подчеркивания в мнемонике, даже когда индекс явно установлен setDisplayedMnemonicIndex() - под Windows 7 (только когда я нажимаю ALT).

Однако это работает, если я не устанавливаю внешний вид и оставляю только тему Java по умолчанию.

Есть ли способ добиться этого? Это связано с настройками Windows?


person ps-aux    schedule 15.09.2013    source источник


Ответы (2)


Вы можете изменить поведение, при котором подчеркивание появляется только при нажатии клавиши Alt, установив свойство с помощью UIManager

UIManager.getDefaults().put("Button.showMnemonics", Boolean.TRUE);

Я думаю, вам нужно сделать это до того, как вы отобразите свой первый компонент Swing, но я не уверен.

person a_horse_with_no_name    schedule 15.09.2013

При нажатии клавиши ALT появится подчеркивание. Я думаю, что это предназначено для визуальной обратной связи для пользователей, чтобы они знали, что подчеркнутые символы теперь отображаются на соответствующие клавиши в качестве сочетаний клавиш.

person Anas H. Sulaiman    schedule 15.09.2013
comment
Я бы разместил это как комментарий, если бы у меня была привилегия. - person Anas H. Sulaiman; 15.09.2013
comment
@ Анас, я знаю, что это отображается после того, как я нажму ALT. Так работают все приложения Windows? +1, так что вы можете получить привилегию быстрее :) - person ps-aux; 15.09.2013
comment
@лошадь - ДА точно. Это сработало. Это правильный ответ. Жаль, что я не могу отметить это и поставить этот вопрос как решенный. - person ps-aux; 15.09.2013