Skip to content

Instantly share code, notes, and snippets.

@sandipchitale
Last active December 14, 2024 11:09
Show Gist options
  • Save sandipchitale/fcec62cdb5fb86f58fd4f1fb074630c8 to your computer and use it in GitHub Desktop.
Save sandipchitale/fcec62cdb5fb86f58fd4f1fb074630c8 to your computer and use it in GitHub Desktop.
KeyEventCombinationTable #KeyEventCombinationTable
import java.awt.event.KeyEvent;
import java.util.*;
public class KeyEventCombinationTable {
public static void main(String[] args) {
// Get all VK_ fields
List<String> vkFields = new ArrayList<>();
// List<String> asciiChars = new ArrayList<>();
// Collect VK_ fields
for (java.lang.reflect.Field field : KeyEvent.class.getDeclaredFields()) {
if (field.getName().startsWith("VK_")) {
vkFields.add(field.getName().replace("VK_", ""));
}
}
// Collect printable ASCII characters
// for (int i = 32; i < 127; i++) {
// asciiChars.add("'" + ((char)i == '|' ? "\\": "") + ((char)i) + "'");
// }
// Combine VK_ fields and ASCII chars
List<String> allRows = new ArrayList<>();
allRows.addAll(vkFields);
// allRows.addAll(asciiChars);
// Sort the combined list
Collections.sort(allRows);
// Generate header combinations (excluding zero-length item)
String[] modifiers = {"", "shift", "ctrl", "alt", "shift ctrl", "shift alt", "ctrl alt", "shift ctrl alt"};
// Print table header
System.out.print("|");
for (String mod : modifiers) {
System.out.print("|" +mod);
}
System.out.println("|");
// Print separator
System.out.print("|-");
for (String mod : modifiers) {
System.out.print("|-");
}
System.out.println("|");
// Print rows
for (String row : allRows) {
// Print key
System.out.print("|"+ row + "\t");
for (String mod : modifiers) {
System.out.print("|");
}
System.out.println("|");
}
}
}
shift ctrl alt shift ctrl shift alt ctrl alt shift ctrl alt
0
1
2
3
4
5
6
7
8
9
A
ACCEPT
ADD
AGAIN
ALL_CANDIDATES
ALPHANUMERIC
ALT
ALT_GRAPH
AMPERSAND
ASTERISK
AT
B
BACK_QUOTE
BACK_SLASH
BACK_SPACE
BEGIN
BRACELEFT
BRACERIGHT
C
CANCEL
CAPS_LOCK
CIRCUMFLEX
CLEAR
CLOSE_BRACKET
CODE_INPUT
COLON
COMMA
COMPOSE
CONTEXT_MENU
CONTROL
CONVERT
COPY
CUT
D
DEAD_ABOVEDOT
DEAD_ABOVERING
DEAD_ACUTE
DEAD_BREVE
DEAD_CARON
DEAD_CEDILLA
DEAD_CIRCUMFLEX
DEAD_DIAERESIS
DEAD_DOUBLEACUTE
DEAD_GRAVE
DEAD_IOTA
DEAD_MACRON
DEAD_OGONEK
DEAD_SEMIVOICED_SOUND
DEAD_TILDE
DEAD_VOICED_SOUND
DECIMAL
DELETE
DIVIDE
DOLLAR
DOWN
E
END
ENTER
EQUALS
ESCAPE
EURO_SIGN
EXCLAMATION_MARK
F
F1
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F2
F20
F21
F22
F23
F24
F3
F4
F5
F6
F7
F8
F9
FINAL
FIND
FULL_WIDTH
G
GREATER
H
HALF_WIDTH
HELP
HIRAGANA
HOME
I
INPUT_METHOD_ON_OFF
INSERT
INVERTED_EXCLAMATION_MARK
J
JAPANESE_HIRAGANA
JAPANESE_KATAKANA
JAPANESE_ROMAN
K
KANA
KANA_LOCK
KANJI
KATAKANA
KP_DOWN
KP_LEFT
KP_RIGHT
KP_UP
L
LEFT
LEFT_PARENTHESIS
LESS
M
META
MINUS
MODECHANGE
MULTIPLY
N
NONCONVERT
NUMBER_SIGN
NUMPAD0
NUMPAD1
NUMPAD2
NUMPAD3
NUMPAD4
NUMPAD5
NUMPAD6
NUMPAD7
NUMPAD8
NUMPAD9
NUM_LOCK
O
OPEN_BRACKET
P
PAGE_DOWN
PAGE_UP
PASTE
PAUSE
PERIOD
PLUS
PREVIOUS_CANDIDATE
PRINTSCREEN
PROPS
Q
QUOTE
QUOTEDBL
R
RIGHT
RIGHT_PARENTHESIS
ROMAN_CHARACTERS
S
SCROLL_LOCK
SEMICOLON
SEPARATER
SEPARATOR
SHIFT
SLASH
SPACE
STOP
SUBTRACT
T
TAB
U
UNDEFINED
UNDERSCORE
UNDO
UP
V
W
WINDOWS
X
Y
Z
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment