2016-06-06 5 views
0

Я пытался настроить мнемоника на мои кнопки в окне SWT (Eclipse, плагин), но, к сожалению, я всегда в конечном итоге в следующих случаях:Мнемоника не будет отображаться в окне SWT

  1. Либо я использую setText("&Cancel"): он не показывает мнемонику, пока вы не нажмете кнопку «alt»
  2. Или я использую setText("&&Cancel"), но кнопка выглядит как «& Отмена». Этот трюк «двойной амперсанд» был найден на форуме Eclipse.

Если у вас уже возникла проблема, я был бы рад прочесть ваши решения, чтобы исправить это. Спасибо за прочтение.

+0

Ну, не в том, что, как Мнемоники должны работать? Не показывать их, пока пользователь не нажмет «Alt»? В Windows вам необходимо принудительно включить подчеркивание мнемоники (cf http://stackoverflow.com/a/10164042), чтобы они отображались все время. – Baz

+0

Действительно, кажется, что вы правы. Тогда вы знаете, как программно заставить подчеркивание мнемического персонажа? (Например, в меню Eclipse отображаются мнемоники, даже если вы не нажимаете клавишу Alt) – MedAl

ответ

0

Наконец-то удалось найти решение. Вот как имитировать ALT нажатие клавиши:

private void showMnemonics() { 

    Event event = new Event(); 
    event.keyCode = SWT.ALT; 
    event.type = SWT.KeyDown; 
    Display.getDefault().post(event); 

} 

Edit: Я думаю, следующий код должен быть добавить к методу, для того, чтобы освободить ключ:

event.type = SWT.KeyUp; 
Display.getDefault().post(event);