2011-06-17 35 views
3

我無法將Control-Backspace鍵映射到KeyStroke。以下對我毫無意義。無法將Control-Backspace映射到KeyStroke

import java.awt.event.KeyEvent; 
import javax.swing.KeyStroke; 
public class TestControlBackspace { 
    public static void main(String[] args) { 
     KeyStroke ks1 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, KeyEvent.VK_CONTROL); 
     KeyStroke ks2 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, KeyEvent.VK_SHIFT); 
     KeyStroke ks3 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0); 
     System.out.println(ks1); 
     System.out.println(ks2); 
     System.out.println(ks3); 
    } 
} 

輸出:

按住SHIFT BACK_SPACE

按下BACK_SPACE

按下BACK_SPACE

我在這裏失去了一些東西?

回答

7

您可能忘記閱讀documentation。請注意,修飾符蒙版來自與按下按鍵不同的位置。

import java.awt.event.InputEvent; 
import java.awt.event.KeyEvent; 
import javax.swing.KeyStroke; 
public class TestControlBackspace { 
    public static void main(String[] args) { 
     KeyStroke ks1 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, InputEvent.SHIFT_DOWN_MASK); 
     KeyStroke ks2 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, InputEvent.CTRL_DOWN_MASK); 
     KeyStroke ks3 = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0); 
     System.out.println(ks1); 
     System.out.println(ks2); 
     System.out.println(ks3); 
    } 
} 
+1

呃!非常感謝你。 –

+0

請將鏈接從Java1.4xxx更改爲當前的Java6,很好的示例+1 – mKorbel