This week's book giveaway is in the Kotlin forum.
We're giving away four copies of Kotlin in Action and have Dmitry Jemerov & Svetlana Isakova on-line!
See this thread for details.
Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Key Events / Which keys are which?  RSS feed

Matt Midcap
Posts: 440
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have been trying to figure out how to "capture" specific keys that are typed by a user for my application. For example, if a user hits the "Enter" key, have the app do somthing.
I figured out how to do this thanks to an api example. If you have the api, it is under the KeyListener api, in the See Also section, Tutorial: Writing a Key Listener
Is there a "master list" of standard keyboard codes that are given by e.getKeyChar(), and e.getKeyCode() below?:
public void keyPressed(KeyEvent e)
char keyChar = e.getKeyChar() ;
int keyCode = e.getKeyCode() ;
For example, the "Enter" key returns a keyCode of 10 when pressed.
The code located at the above url (in case you don't have it) is below. It's an applet found at and returns the codes for what you type in a text field:
* Swing version
import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Dimension;
public class KeyEventDemo extends JApplet
implements KeyListener,
ActionListener {
JTextArea displayArea;
JTextField typingArea;
static final String newline = "\n";
public void init() {
JButton button = new JButton("Clear");
typingArea = new JTextField(20);
displayArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(displayArea);
scrollPane.setPreferredSize(new Dimension(375, 125));
JPanel contentPane = new JPanel();
contentPane.setLayout(new BorderLayout());
contentPane.add(typingArea, BorderLayout.NORTH);
contentPane.add(scrollPane, BorderLayout.CENTER);
contentPane.add(button, BorderLayout.SOUTH);
/** Handle the key typed event from the text field. */
public void keyTyped(KeyEvent e) {
displayInfo(e, "KEY TYPED: ");
/** Handle the key pressed event from the text field. */
public void keyPressed(KeyEvent e) {
displayInfo(e, "KEY PRESSED: ");
/** Handle the key released event from the text field. */
public void keyReleased(KeyEvent e) {
displayInfo(e, "KEY RELEASED: ");
/** Handle the button click. */
public void actionPerformed(ActionEvent e) {
//Clear the text components.
//Return the focus to the typing area.
* We have to jump through some hoops to avoid
* trying to print non-printing characters
* such as Shift. (Not only do they not print,
* but if you put them in a String, the characters
* afterward won't show up in the text area.)
protected void displayInfo(KeyEvent e, String s){
String charString, keyCodeString, modString, tmpString;
char c = e.getKeyChar();
int keyCode = e.getKeyCode();
int modifiers = e.getModifiers();
if (Character.isISOControl(c)) {
charString = "key character = "
+ "(an unprintable control character)";
} else {
charString = "key character = '"
+ c + "'";
keyCodeString = "key code = " + keyCode
+ " ("
+ KeyEvent.getKeyText(keyCode)
+ ")";
modString = "modifiers = " + modifiers;
tmpString = KeyEvent.getKeyModifiersText(modifiers);
if (tmpString.length() > 0) {
modString += " (" + tmpString + ")";
} else {
modString += " (no modifiers)";
displayArea.append(s + newline
+ " " + charString + newline
+ " " + keyCodeString + newline
+ " " + modString + newline);

[This message has been edited by Matt Midcap (edited October 05, 1999).]
Pawel Veselov
Ranch Hand
Posts: 165
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Look to CORE API documentation: api/java.awt.event.KeyEvent.html. There is a static final variable for each keycode named VK_xxx.
This contains the information about any possible keys you can get from a user.
Btw, one should not base his/her knowledge of keycodes, thay he/she found by testing the application or applet on some platform (for example with the application Matt pointed to) Sometimes values for that VK_* variables can be different even for alphanumeric characters.

With best of best regards, Pawel S. Veselov ( aka Black Angel )

It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!