我正在使用Eclipse 3.4.1的庫開發SWT/JFace應用程序。 我在Windows(Vista 32位)和Ubuntu 8.10 32位上遇到以下問題:菜單項加速鍵僅在菜單項顯示後才起作用
我在JFace ApplicationWindow的createMenuManager方法中創建了一個菜單欄。我添加MenuManagers文件,編輯和幫助。
我再添加一個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錯誤還是我錯過了什麼?
Torsten。