使用快捷键在 SWT Table 中添加 SWT 上下文菜单

Add SWT context menu in SWT Table with Shortcut Keys

我正在尝试使用键名在 SWT Table 上添加上下文菜单。 上下文菜单正常出现,但我无法设置键名,因为我们可以在菜单贡献中将其称为“序列”。 我没有使用 Menu Contribution,而是使用 MenuItem。

这是我的代码。

final MenuItem item = new MenuItem(menu, SWT.PUSH);   
item.setText(save);
item.addListener(SWT.Selection, new Listener() {

        @Override
        public void handleEvent(Event event) {
            //saveFunction
        }
 });

这是可行的,但我想添加键名称和菜单名称,如下所示:

任何人都可以帮助我,因为我不能使用 MenuContribution。

您可以使用MenuItem.setAccelerator设置菜单项的按键:

item.setAccelerator(SWT.MOD1 | 'S');

请注意,这仅在显示菜单时有效,如果未显示菜单,则需要使用按键侦听器。我在这里使用了 SWT.MOD1 修饰符,而不是 SWT.CTRL,这样在 macOS 上,键就是正确的 ⌘+S

在不自动添加加速器文本的平台上,您可以使用以下方式设置文本:

String acceleratorText = Action.convertAccelerator(SWT.MOD1 | 'S');

item.setText(save + '\t' + acceleratorText);

这里Actionorg.eclipse.jface.action.Action.

在 Eclipse 插件中,您可能应该使用可重定向操作来与标准保存代码集成。