Java Keyboard Keycodes list

96,278

Solution 1

KeyEvent class has static fields with these values.

For example, KeyEvent.VK_A represent "A" key.

To get the fields names you can use reflection:

Field[] fields = java.awt.event.KeyEvent.class.getDeclaredFields();
for (Field f : fields) {
    if (Modifier.isStatic(f.getModifiers())) {
        System.out.println(f.getName());
    } 
}

Solution 2

This is your list:

3 -- Cancel
8 -- Backspace
9 -- Tab
10 -- Enter
12 -- Clear
16 -- Shift
17 -- Ctrl
18 -- Alt
19 -- Pause
20 -- Caps Lock
21 -- Kana
24 -- Final
25 -- Kanji
27 -- Escape
28 -- Convert
29 -- No Convert
30 -- Accept
31 -- Mode Change
32 -- Space
33 -- Page Up
34 -- Page Down
35 -- End
36 -- Home
37 -- Left
38 -- Up
39 -- Right
40 -- Down
44 -- Comma
45 -- Minus
46 -- Period
47 -- Slash
48 -- 0
49 -- 1
50 -- 2
51 -- 3
52 -- 4
53 -- 5
54 -- 6
55 -- 7
56 -- 8
57 -- 9
59 -- Semicolon
61 -- Equals
65 -- A
66 -- B
67 -- C
68 -- D
69 -- E
70 -- F
71 -- G
72 -- H
73 -- I
74 -- J
75 -- K
76 -- L
77 -- M
78 -- N
79 -- O
80 -- P
81 -- Q
82 -- R
83 -- S
84 -- T
85 -- U
86 -- V
87 -- W
88 -- X
89 -- Y
90 -- Z
91 -- Open Bracket
92 -- Back Slash
93 -- Close Bracket
96 -- NumPad-0
97 -- NumPad-1
98 -- NumPad-2
99 -- NumPad-3
100 -- NumPad-4
101 -- NumPad-5
102 -- NumPad-6
103 -- NumPad-7
104 -- NumPad-8
105 -- NumPad-9
106 -- NumPad *
107 -- NumPad +
108 -- NumPad ,
109 -- NumPad -
110 -- NumPad .
111 -- NumPad /
112 -- F1
113 -- F2
114 -- F3
115 -- F4
116 -- F5
117 -- F6
118 -- F7
119 -- F8
120 -- F9
121 -- F10
122 -- F11
123 -- F12
127 -- Delete
128 -- Dead Grave
129 -- Dead Acute
130 -- Dead Circumflex
131 -- Dead Tilde
132 -- Dead Macron
133 -- Dead Breve
134 -- Dead Above Dot
135 -- Dead Diaeresis
136 -- Dead Above Ring
137 -- Dead Double Acute
138 -- Dead Caron
139 -- Dead Cedilla
140 -- Dead Ogonek
141 -- Dead Iota
142 -- Dead Voiced Sound
143 -- Dead Semivoiced Sound
144 -- Num Lock
145 -- Scroll Lock
150 -- Ampersand
151 -- Asterisk
152 -- Double Quote
153 -- Less
154 -- Print Screen
155 -- Insert
156 -- Help
157 -- Meta
160 -- Greater
161 -- Left Brace
162 -- Right Brace
192 -- Back Quote
222 -- Quote
224 -- Up
225 -- Down
226 -- Left
227 -- Right
240 -- Alphanumeric
241 -- Katakana
242 -- Hiragana
243 -- Full-Width
244 -- Half-Width
245 -- Roman Characters
256 -- All Candidates
257 -- Previous Candidate
258 -- Code Input
259 -- Japanese Katakana
260 -- Japanese Hiragana
261 -- Japanese Roman
262 -- Kana Lock
263 -- Input Method On/Off
512 -- At
513 -- Colon
514 -- Circumflex
515 -- Dollar
516 -- Euro
517 -- Exclamation Mark
518 -- Inverted Exclamation Mark
519 -- Left Parenthesis
520 -- Number Sign
521 -- Plus
522 -- Right Parenthesis
523 -- Underscore
524 -- Windows
525 -- Context Menu
61440 -- F13
61441 -- F14
61442 -- F15
61443 -- F16
61444 -- F17
61445 -- F18
61446 -- F19
61447 -- F20
61448 -- F21
61449 -- F22
61450 -- F23
61451 -- F24
65312 -- Compose
65368 -- Begin
65406 -- Alt Graph
65480 -- Stop
65481 -- Again
65482 -- Props
65483 -- Undo
65485 -- Copy
65487 -- Paste
65488 -- Find
65489 -- Cut

I generated it with this plain bruteforce:

import java.awt.event.KeyEvent;                                                               
import java.lang.reflect.Field;                                                               
import java.lang.reflect.Modifier;                                                            
import java.util.*;                                                                           
                                                                                              
public class Test {                                                                           
    public static void main(String[] a) {                                                     
        for(int i = 0; i < 1000000; ++i) {                                                    
            String text = java.awt.event.KeyEvent.getKeyText(i);                              
            if(!text.contains("Unknown keyCode: ")) {                                         
                System.out.println("" + i + " -- " + text);                                   
            }                                                                                 
        }                                                                                     
                                                                                              
    }                                                                                         
}

I have excluded the "unknown" codes.

Solution 3

You don't need to know the exact value of key codes. KeyEvent class has constants fields defining all the key codes:

KeyEvent.VK_A
KeyEvent.VK_ENTER
KeyEvent.VK_SPACE

etc.

Please read Javadoc carefully. All the constant values can also be found here:

http://docs.oracle.com/javase/7/docs/api/constant-values.html

Solution 4

You can try this program to get all the int values of the fields in the KeyEvent class

import java.awt.Robot; 
import java.awt.event.KeyEvent;
import java.awt.event.KeyEvent;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.*;
public class RobotClass 
{ 
   public static void main(String[] args)  
   {   
      ArrayList<Integer> values = new ArrayList<>();
      try{
         Robot robot = new Robot();
         Field[] fields = java.awt.event.KeyEvent.class.getDeclaredFields();
         for (Field f : fields) {
            if (Modifier.isStatic(f.getModifiers())) {
               values.add(f.getInt(f.getName()));
           } 
         }         
      }
      catch(Exception e){
         Collections.sort(values);
         for(int i:values) System.out.println(i);
      }
   } 
}
Share:
96,278
Abdud Dayan Adeeb
Author by

Abdud Dayan Adeeb

Updated on July 14, 2022

Comments

  • Abdud Dayan Adeeb
    Abdud Dayan Adeeb almost 2 years

    Can anybody provide me with the Key Code integer list for individual keys used on the Keyboard for the KeyEvent class in java?

    I want to create a dropdown list of all the keyboard keys for the user to select. I need the list specific to Keyboard. The VK constants does not help in this case because I need a 'list' of Keys used on the Keyboard. This post here didn't come of use because it's for Javascript and the codes aren't the same for all keys comparing with the javadoc. Also the KeyCode values used in javadoc are all arranged in Alphabetical Order, so it's hard to find the Keyboard keys over there. I tried googling for sources but nothing interesting came up just the Javascript one. Should I just compile them one by one myself or is there an easier way?

    Edit: I know about VK. I need to use KeyEvent.getKeyText function to store each of the keyboard keys in a dropdown menu. So i need the list. That's why I asked should I need to compile them myself. I should have mentioned that earlier. It would be a waste of time doing that for each key.

  • Abdud Dayan Adeeb
    Abdud Dayan Adeeb about 11 years
    It doesn't help. I know about VK. My question was about compiling the list of KeyCodes rather than using each KeyCode. That's why I asked if i should compile them manually.
  • Jean Waghetti
    Jean Waghetti about 11 years
    Edited the answer. This will give the fields names. Then you'll need to "edit" the strings to put in the dropdown menu.
  • Abdud Dayan Adeeb
    Abdud Dayan Adeeb about 11 years
    Thanks for your help. This is Perfect.
  • camickr
    camickr about 11 years
    @AbdudDayanAdeeb, if this solved your problem then you should accept the answer.
  • radrow
    radrow almost 9 years
    I know it is old topic, but somebody may find this helpful
  • Adam_G
    Adam_G over 4 years
    Thanks for this! Just curious where you pulled this from?
  • radrow
    radrow over 4 years
    Just bruteforced all the keys to some reasonable number. Tbh this was just a random answer that I posted when I started to learn actual programming and it is still the most rated one out of all my posts