使用 SWT 处理按键事件

7


当按下 CTRL-C 时,我想执行一些操作 someStuff()。我已经写了一些代码,但它“不够好”。我该怎么办?

    //org.eclipse.draw2d.Shape getShape(){....}

    getShape().addKeyListener(new KeyListener(){

        @Override
        public void keyPressed(KeyEvent ke) {
        }

        @Override
        public void keyReleased(KeyEvent ke) {
            /*if CTRL-C pressed*/
            if((ke.getState() & KeyEvent.CONTROL) != 0 && 'c' == ('a' + ke.character - 1)){
                someStuff();
            } 
        }
    });

感谢您的选择。
2个回答

7

试试这个:

getShape().addListener(SWT.KeyUp, new Listener() {
    public void handleEvent(Event event) {
        if (event.stateMask == SWT.CTRL && event.keyCode == 'c') {
            someStuff();
        }
    }});

0
尝试使用以下条件来检查CTRL-C(编辑:AWT / Swing):
public void keyReleased(KeyEvent event) {
  if (event.getKeyCode() == KeyEvent.VK_C && event.getModifiers() == InputEvent.CTRL_MASK)
    someStuff();
}

org.eclipse.draw2d.KeyEvent中不包含任何VK_C等内容。如果我的问题表述不够明确,我很抱歉。 - Stan Kurilin
啊,我犯错了。那我就不知道怎么帮你了 =/。 - Andy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接