2010-10-06 33 views
6


Je veux faire someStuff() lorsque CTRL-C pressé. J'avais écrit du code, mais "pas assez bien". Que puis-je en faire?)poignée presses clés en utilisant 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(); 
      } 
     } 
    }); 

Merci.

Répondre

7

Essayez ceci:

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

Essayez d'utiliser la condition suivante pour vérifier CTRL-C:

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

org.eclipse.draw2d.KeyEvent ne contient aucun VK_C et ainsi de suite. Je suis désolé si je formule une question sous une forme pas évidente. –

+0

Aah, mon erreur. Je ne sais pas comment t'aider alors = /. – Andy