【问题标题】:Handle key presses using swt使用 swt 处理按键
【发布时间】:2011-04-21 23:44:54
【问题描述】:


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

谢谢。

【问题讨论】:

    标签: java user-interface swt keylistener draw2d


    【解决方案1】:

    试试这个:

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

    【讨论】:

      【解决方案2】:

      尝试使用以下条件来检查 CTRL-C:

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

      【讨论】:

      • org.eclipse.draw2d.KeyEvent 不包含任何 VK_C 等等。如果我以某种不明显的形式提出问题,我很抱歉。
      • 啊,我的错。那我不知道怎么帮你=/.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 2013-01-04
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      相关资源
      最近更新 更多