gpt4 book ai didi

java - 菜单项加速键仅在菜单项显示后才起作用

转载 作者:行者123 更新时间:2023-12-01 16:12:53 25 4
gpt4 key购买 nike

我正在使用 Eclipse 3.4.1 中的库开发 SWT/JFace 应用程序。我在 Windows(Vista 32 位)和 Ubuntu 8.10 32 位上遇到以下问题:

我在 JFace ApplicationWindow 的 createMenuManager 方法中创建了一个菜单栏。我添加了用于文件、编辑和帮助的菜单管理器。

然后我将 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”退出应用程序。然而这不起作用。仅当我单击菜单栏中的"file",然后单击“CTRL+Q”时,应用程序才会退出。

我已经用不同的加速器尝试过 - 相同的行为。

但是,如果我创建一个“MenuItem”而不是“Action”来为菜单栏做出贡献,它确实可以工作。

这是 SWT 错误还是我错过了什么?

托斯顿。

最佳答案

更新:我的有一个重复的错误,其中也包含解决方法。错误网址为:https://bugs.eclipse.org/bugs/show_bug.cgi?id=243758

基本上,解决方法是在 ApplicationWindow 上调用 create(),然后调用 getMenuBarManager().updateAll(true); 这将强制所有菜单项都要初始化。

当然,您必须在创建菜单项后调用上述方法。

关于java - 菜单项加速键仅在菜单项显示后才起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/239744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com