2016-06-24 3 views
0

Я хочу, чтобы массив всех значений VK, так что я могу спросить, если нажата клавишаКакое максимальное возможное значение KeyEvent.VK_ *

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) {} 

} 

Может ли один скажите мне - Что такое максимальная и минимальные значения VK?

Я не хочу, чтобы Oracle добавлял новые значения VK и однажды нарушил мой код.

Есть ли способ «limits.h» в стиле, который я могу установить динамически?

+0

Я буду * в конечном счете * использовать keyPressed значения одновременно ... еще не выяснили синхронизацию, я не совсем готов пересечь этот мост. – gbtimmon

ответ

2

Использование KeyEvent: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/awt/event/KeyEvent.java

Наибольшее значение достижимо (с использованием Юникода представление):

public static final char CHAR_UNDEFINED = 0xFFFF; 

или 65535 в десятичной системе.

Это неопубликованное значение для неопределенного символа, отличного от юникода.

Наибольшее определенное значение для действительного события:

public static final int VK_BEGIN     = 0xFF58; 

или 65368 в десятичной системе счисления.

Наивысшая отображается значение, если вы хорошо с отрезанием несколько специальных функций:

public static final int VK_CONTEXT_MENU    = 0x020D; 

или 525 в десятичной системе счисления.

Самое низкое значение определяется:

public static final int VK_UNDEFINED  = 0x0; 

или 0 в десятичной системе.

Очевидно, что истинный макс и истинный мин не достижимы с клавиатуры, но они служат пределом разумного жесткого кодирования. VK_CANCEL входит в 0x03 для потенциально самого низкого фактического полезного отображаемого значения.

+0

hmm, полные 16 бит значений VK_ кажутся излишними для меня, но спасибо за информацию, очень полезную - я должен сделать процесс init, который определяет максимальное значение всех ключей, которые я на самом деле сопоставил, и оттуда я думаю , – gbtimmon

+0

Знаете ли вы, что Im заработал, чтобы иметь все положительные значения VK_ где угодно? – gbtimmon

+0

Есть ли отрицательные значения Unicode? Серьезный вопрос. – Compass

Смежные вопросы