2011-08-24 61 views
1

我有這樣的代碼:如何測試是否修改與鍵碼下跌

 
import java.awt.KeyEventDispatcher; 
import java.awt.event.KeyEvent; 
import java.awt.Toolkit; 

public class KeyListener implements KeyEventDispatcher 
{ 
    @Override 
    public boolean dispatchKeyEvent(KeyEvent e) 
    { 
     if(e.getID() == KeyEvent.KEY_PRESSED) 
     { 
      if(e.isDown(Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) && e.getKeyCode() == KeyEvent.VK_V) 
      { 
       paste(); 
      } 
     } 
    } 
} 

的問題是,e.isDown不存在。 什麼alterntives可以使用,使其CMD + V爲Mac和控制 + V其他OS'es?

回答

3

KeyEvent擴展了InputEvent,因此您可以使用InputEvent的isControlDown()方法。

編輯:我發現這個鏈接,展示瞭如何創建命令鍵的KeyStroke:

http://lists.apple.com/archives/java-dev/2007/May/msg00243.html

因此,而不是使用的KeyEventDispatcher的,你應該使用Key Bindings。鍵綁定允許您爲給定的KeyStroke調用一個Action。 Swing旨在使用鍵綁定。

+1

是由isControlDown處理的mac命令按鈕嗎? –

+0

可能不是,請參閱編輯以獲得更好的方法。 – camickr

+0

[] getMenuShortcutKeyMask()'](http://download.oracle.com/javase/6/docs/api/java/awt/Toolkit.html#getMenuShortcutKeyMask%28%29),返回InputEvent。在Mac OS X上的META_MASK,對應於⌘鍵。 – trashgod

相關問題