A complete KeyListener Java Example
In this article,we will talk about java key listener and we will demonstrate a complete KeyListener Java example.
1. Introduction
Java key listener is an interface used in Java Swing to monitor keyboard-related events that take place in your applications. This is particularly useful when you want to perform input validation on form fields or add shortcut functionality to your application.

2. KeyListener Java API
The java keyboard listener interface extends the EventListener interface and has the following method signatures:
void keyPressed(KeyEvent e)This method is invoked when a key has been pressed.void keyReleased(KeyEvent e)This method is invoked when a key has been released.void keyTyped(KeyEvent e)This method is invoked when a key has been typed.
3. A Simple KeyListener Java Class
In this section, we will see the implementation of KeyListenerExample.java. The steps to implement the class are as follows:
- Create a new
KeyListenerobject. - Override the methods that correspond to the key events you want to monitor e.g
keyPressed,keyReleased,keyTyped. - Create a
JTextFieldcomponent - Use it’s
addKeyListenermethod to add to it theKeyListeneryou’ve created.
Let’s take a closer look at the code snippet that follows:
KeyListenerExample.java
package com.javacodegeeks.snipppets.desktop;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class KeyListenerExample {
public static void main(String args[]) {
JFrame frame = new JFrame("Key Listener");
Container contentPane = frame.getContentPane();
KeyListener listener = new KeyListener() {
@Override
public void keyPressed(KeyEvent event) {
printEventInfo("Key Pressed", event);
}
@Override
public void keyReleased(KeyEvent event) {
printEventInfo("Key Released", event);
}
@Override
public void keyTyped(KeyEvent event) {
printEventInfo("Key Typed", event);
}
private void printEventInfo(String str, KeyEvent e) {
System.out.println(str);
int code = e.getKeyCode();
System.out.println(" Code: " + KeyEvent.getKeyText(code));
System.out.println(" Char: " + e.getKeyChar());
int mods = e.getModifiersEx();
System.out.println(" Mods: "
+ KeyEvent.getModifiersExText(mods));
System.out.println(" Location: "
+ keyboardLocation(e.getKeyLocation()));
System.out.println(" Action? " + e.isActionKey());
}
private String keyboardLocation(int keybrd) {
switch (keybrd) {
case KeyEvent.KEY_LOCATION_RIGHT:
return "Right";
case KeyEvent.KEY_LOCATION_LEFT:
return "Left";
case KeyEvent.KEY_LOCATION_NUMPAD:
return "NumPad";
case KeyEvent.KEY_LOCATION_STANDARD:
return "Standard";
case KeyEvent.KEY_LOCATION_UNKNOWN:
default:
return "Unknown";
}
}
};
JTextField textField = new JTextField();
textField.addKeyListener(listener);
contentPane.add(textField, BorderLayout.NORTH);
frame.pack();
frame.setVisible(true);
}
}
4. KeyListenerLoginFormExample
In this section, we will see an example implementation where the KeyListener class is used to perform validation on a user name input field.
KeyListenerLoginFormExample.java
package com.javacodegeeks.snipppets.desktop;
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KeyListenerLoginFormExample {
public static void main(String args[]) {
JPanel inputPanel = new JPanel();
JFrame frame = new JFrame("Login Form");
Container pane = frame.getContentPane();
JLabel userNameInvalidLabel = new JLabel();
JLabel userNameLabel = new JLabel("User Name");
JTextField userNameTextField = new JTextField( 15);
KeyListener listener = new KeyListener() {
@Override
public void keyPressed(KeyEvent event) {
validateUserName(event);
}
@Override
public void keyReleased(KeyEvent event) {
}
@Override
public void keyTyped(KeyEvent event) {
validateUserName(event);
}
private void validateUserName(KeyEvent event) {
int num = event.getKeyChar();
if(!Character.isDigit(event.getKeyChar())) {
event.consume();
}
if(event.getKeyChar()==KeyEvent.VK_ENTER) {
userNameInvalidLabel.setText("Your username is valid!!");
userNameTextField.setText("");
event.consume();
}
else {
userNameInvalidLabel.setText("");;
}
}
};
userNameTextField.addKeyListener(listener);
inputPanel.add(userNameLabel);
inputPanel.add(userNameTextField);
inputPanel.add(userNameInvalidLabel);
pane.add(inputPanel, BorderLayout.PAGE_START);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(700,500);
frame.setVisible(true);
}
}
In the above class, we see the usage of the keyTyped and keyPressed methods in the KeyListener implementation. The event.consume() statement in lines 35 and 40, will reset the value typed into the text field. Thus, through the validateUserName() method, we are able to make sure that userNameTextField only accepts numbers.
5. Summary
In this article, we were able to show 2 different usages and implementation of KeyListener in Java.
6. Download the Source Code
This was a complete KeyListener Java Example.
You can download the full source code of this example here: A Complete KeyListener Java Example
Last updated on Jun. 11th, 2020


Awesome! thanks