如何在SWT中使用助记键绑定(Alt +?)触发不在具有焦点的Composite中的按钮?

时间:2016-07-27 14:08:21

标签: java swt

我的RCP / SWT应用程序中有以下复合层次结构:

  • 身体中有两个孩子的表格: - 在顶部,复合数据 - 在底部,带有按钮的栏(保存,打印等)

这些按钮定义了助记符,但是不是由Alt + S,Alt + P等触发的。我假设问题是焦点位于顶部复合材料上,而不是复合材料上的复合材料。按钮,但我无法找到关于助记符如何正常工作的任何描述......

我的假设是否正确?如果是,我怎样才能重定向"从一个复合材料到另一个复合材料的按键?

我尝试了以下操作,但是从不输入监听器(editorParent和buttonBar是上面层次结构中提到的两个复合材料):

editorParent.addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent e) {
            Event event = new Event();
            event.keyCode = e.keyCode;
            event.type = SWT.KeyUp;
            buttonBar.getComposite().getDisplay().post(event);
        }

        @Override
        public void keyPressed(KeyEvent e) {
            Event event = new Event();
            event.keyCode = e.keyCode;
            event.type = SWT.KeyDown;
            buttonBar.getComposite().getDisplay().post(event);
        }
    });

编辑: 通过将按钮的文本设置为& Save,& Print等来定义助记符。我知道它们有效,因为当我用鼠标点击其中一个按钮时,请在保存按钮上说,然后我可以使用Alt + P进行打印,直到我返回编辑数据为止。

1 个答案:

答案 0 :(得分:0)

如果您使用编辑器或视图来创建表单。它有一些已定义的方法,例如lock(key) /*make stuff*/ unlock(key) 适用于ctrl + s。 您可以将代码放在其中以保存或调用保存数据的操作。

如果您希望自己的快捷方式在eclipse工作台中运行。然后在eclipse插件中创建一个命令。