我正在使用 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 错误还是我错过了什么?
托斯滕。