2011-06-17 2 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); 
    } 
} 

出力:

シフトが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

Duh!どうもありがとうございました。 –

+0

Java1.4xxxから現在のJava6へのリンクを変更してください。良い例+1 – mKorbel

関連する問題