2016-06-24 7 views
0

ich ein Array aller VK-Werte wollen, so dass ich, wenn ein SchlüsselWas ist die maximale mögliche Wert von KeyEvent.VK_ *

gedrückt wird fragen
public class Input implements KeyListener{ 

    boolean[] keyPressed = new boolean [1000]; 

    @Override 
    public void keyPressed(KeyEvent arg0) { 
     keyPressed[arg0.getKeyCode()] = true; 
    } 

    @Override 
    public void keyReleased(KeyEvent arg0) { 
     keyPressed[ arg0.getKeyCode() ] = false; 
    } 

    @Override 
    public void keyTyped(KeyEvent arg0) {} 

} 

Kann jemand mir sagen - Was ist die max und min VK Werte?

Ich möchte nicht Oracle neue VK-Werte hinzufügen und meinen Code eines Tages brechen.

Gibt es einen "limits.h" Stil, den ich dynamisch einstellen kann?

+0

Ich werde * schließlich * KeyPressed-Werte gleichzeitig verwenden ... habe die Synchronisierung noch nicht herausgefunden, ich bin noch nicht bereit, diese Brücke zu überqueren. – gbtimmon

Antwort

2

Mit KeyEvent: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/awt/event/KeyEvent.java

Die höchste erreichbare Wert ist (unter Verwendung von Unicode-Darstellung):

public static final char CHAR_UNDEFINED = 0xFFFF; 

oder 65535 in Dezimal.

Dies ist ein nicht zugewiesener Wert für ein nicht definiertes Nicht-Unicode-Zeichen.

Der höchste definierten Wert für ein gültiges Ereignis ist:

public static final int VK_BEGIN     = 0xFF58; 

oder 65368 in dezimal.

Der höchste Wert abgebildet, wenn Sie ein paar der Sonderfunktionen mit abschneidet fein sind, ist:

public static final int VK_CONTEXT_MENU    = 0x020D; 

oder 525 in dezimal.

Die niedrigste definierte Wert ist:

public static final int VK_UNDEFINED  = 0x0; 

oder 0 in dezimaler.

Offensichtlich sind die wahren Max und True Min nicht von der Tastatur erreichbar, aber sie dienen als vernünftige hard-coded Grenzen. VK_CANCEL kommt bei 0x03 für möglicherweise den niedrigsten tatsächlich nutzbaren abgebildeten Wert.

+0

hmm, volle 16 Bit VK_ Werte scheinen für mich zu übertrieben zu sein, aber danke für die Info, es ist sehr hilfreich - Ich muss einen Init-Prozess machen, der den Maximalwert aller Schlüssel bestimmt, die ich tatsächlich kartografiert habe . – gbtimmon

+0

Wussten Sie, dass ich im ganzen nicht alle positiven VK_-Werte habe? – gbtimmon

+0

Gibt es negative Unicode-Werte? Ernste Frage. – Compass

Verwandte Themen