繁体   English   中英

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

[英]How can I trigger a button which is not in a Composite which has focus, using a mnemonic keybinding (Alt + ?) in SWT?

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

  • 一个在主体中具有两个子元素的表单:-顶部,一个包含数据的组合-底部,一个带有按钮的栏(保存,打印等)

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

我的假设正确吗? 如果是,如何将按键从一个“组合”重定向到另一个?

我尝试了以下操作,但从未输入侦听器(editorParent和buttonBar是上面层次结构中提到的两个Composites):

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);
        }
    });

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

如果您使用编辑器或视图来创建表单。 它有一些已经定义的方法,例如doSave() ,可以在ctrl + s上使用。 您可以将代码放入其中以保存或调用操作以保存数据。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM