当然啦,不是说在输入完成后才处理输入的是不是数字 直接来代码吧 import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JTextField; // public class NumberField extends JTextField implements KeyListener { private static final long serialVersionUID = 1L; NumberField(int columns) { setColumns(columns); addKeyListener(this); //必需的 } public void keyPressed(KeyEvent e){ } public void keyReleased(KeyEvent e){ } public void keyTyped(KeyEvent e) { char key = e.getKeyChar(); //只接收输入数字、'.'和'-' if ((key >= KeyEvent.VK_0 && key <= KeyEvent.VK_9) || key == KeyEvent.VK_PERIOD || key == KeyEvent.VK_MINUS ) { if (key == KeyEvent.VK_PERIOD) { //如果已经存在'.',则不处理 String str = getText(); if (str.indexOf('.') != -1)