Я разрабатываю приложение SWT / JFace с использованием библиотек из Eclipse 3.4.1.
В Windows (Vista 32bit) и Ubuntu 8.10 32bit возникает следующая проблема:
Я создаю строку меню в методе createMenuManager окна приложения JFace. Я добавляю MenuManager для файлов, редактирования и помощи.
Затем я добавляю ExitAction в файл MenuManager следующим образом:
filemenu.add(new ExitAction(this));
ExitAction определяется следующим образом:
public class ExitAction extends Action {
final ApplicationWindow window;
public ExitAction(ApplicationWindow w) {
this.window = w;
setText("E&xit");
setToolTipText("Exit the application");
setAccelerator(SWT.MOD1 + 'Q');
}
}
Теперь, когда мое приложение запускается, я хочу нажимать "CTRL + Q", чтобы выйти из приложения. Это, однако, не работает. Только ПОСЛЕ того, как я щелкну «Файл» в строке меню, а затем, нажав «CTRL + Q», приложение закроется.
Я пробовал это с разными ускорителями - такое же поведение.
Однако это работает, если я создаю «MenuItem» вместо «Action» для добавления в строку меню.
Это ошибка SWT или я что-то пропустил?
Торстен.