通过捕获文本框的键盘事件实现只允许输入数字的文本框
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.*;
public class t3 extends JFrame{
private static final long serialVersionUID = 1L;
private JTextField textField;
private JTextField textField_1;
public t3() {
setTitle("Hern");
setBounds(400, 400, 400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
add(panel, BorderLayout.NORTH);
final JLabel label = new JLabel();
label.setText("方式一:");
panel.add(label);
textField = new JTextField();
textField.addKeyListener(new KeyListener() {
int keyCode;
public void keyPressed(KeyEvent e) {
keyCode = e.getKeyCode();
}
public void keyTyped(KeyEvent e) {
if (keyCode < KeyEvent.VK_0 || keyCode > KeyEvent.VK_9)
e.consume();
}
public void keyReleased(KeyEvent e) {
}
});
textField.setColumns(20);
panel.add(textField);
final JPanel panel_1 = new JPanel();
add(panel_1, BorderLayout.CENTER);
final JLabel label_1 = new JLabel();
label_1.setText("方式二:");
panel_1.add(label_1);
textField_1 = new JTextField();
textField_1.addKeyListener(new KeyAdapter() {
String num = "0123456789";
public void keyTyped(KeyEvent e) {
if (num.indexOf(e.getKeyChar()) < 0)
e.consume();
}
});
textField_1.setColumns(20);
panel_1.add(textField_1);
setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
t3 test = new t3();
}
}