How do I add key listener event handler to JTextField?
Date: 2010-09-16. Category: Java Swing examples. Hits: 71K time(s).
In this small swing example we demonstrate how to use KeyAdapter class to handle keyboard event for the text field component to change the text-field's text to uppercase.
package org.kodejava.example.swing;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class UppercaseTextFieldDemo extends JFrame {
public UppercaseTextFieldDemo() throws HeadlessException {
initComponents();
}
protected void initComponents() {
//
// Set default form size, closing event and layout manager
//
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
//
// Create a label and text field for our demo application and add the
// component to the frame content pane object.
//
JLabel usernameLabel = new JLabel("Username: ");
JTextField usernameTextField = new JTextField();
usernameTextField.setPreferredSize(new Dimension(100, 20));
getContentPane().add(usernameLabel);
getContentPane().add(usernameTextField);
//
// Register a KeyListener for the text field. Using the KeyAdapter class
// allow us implement the only key listener event that we want to listen,
// in this example we use the keyReleased event.
//
usernameTextField.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
JTextField textField = (JTextField) e.getSource();
String text = textField.getText();
textField.setText(text.toUpperCase());
}
public void keyTyped(KeyEvent e) {
// TODO: Do something for the keyTyped event
}
public void keyPressed(KeyEvent e) {
// TODO: Do something for the keyPressed event
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
//
// Create a new instance of our application and display it.
//
new UppercaseTextFieldDemo().setVisible(true);
}
});
}
}