Обрабатывать нажатия клавиш с помощью SWT - PullRequest
7 голосов
/ 06 октября 2010


Я хочу сделать someStuff () , когда CTRL-C нажата. Я написал некоторый код, но он «недостаточно хорош». Что я могу с этим сделать?)

    //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 голосов
/ 07 октября 2010

Попробуйте это:

getShape().addListener(SWT.KeyUp, new Listener() {
    public void handleEvent(Event event) {
        if (event.stateMask == SWT.CTRL && event.keyCode == 'c') {
            someStuff();
        }
    }});
0 голосов
/ 06 октября 2010

Попробуйте использовать следующее условие для проверки CTRL-C:

public void keyReleased(KeyEvent event) {
  if (event.getKeyCode() == KeyEvent.VK_C && event.getModifiers() == InputEvent.CTRL_MASK)
    someStuff();
}
...