2010-10-06 24 views
6


Tôi muốn làm someStuff() khi CTRL-C ép. Tôi đã viết một số mã, nhưng nó "không đủ tốt". Tôi có thể làm gì với nó?)Xử lý ép chính sử dụng swt

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

Cảm ơn.

Trả lời

7

Hãy thử điều này:

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

Hãy thử sử dụng các điều kiện sau đây để kiểm tra CTRL-C:

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

org.eclipse.draw2d.KeyEvent không chứa bất kỳ VK_C và vân vân. Tôi xin lỗi nếu tôi xây dựng câu hỏi trong một số hình thức không rõ ràng. –

+0

Aah, sai lầm của tôi. Tôi không biết làm thế nào để giúp bạn sau đó = /. – Andy

Các vấn đề liên quan