效果如下图
新建一个Demo
```java
public class Demo extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
private JTextField jt;
public Demo(JTextField jt) {
setVisible(true);
setSize(300, 200);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.jt = jt;
this.jt.addKeyListener(new ControlTheInput());
JButton confirm = new JButton("确认");
JButton clear = new JButton("清除");
Container con = getContentPane();
con.setLayout(new FlowLayout());
con.add(this.jt);
con.add(clear);//这里的确认和取消按钮的功能我没有添加
con.add(confirm);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new Demo(new JTextField(20));//初始化一下文本框的长度
}
}
下面是ControlTheInput类里面的代码
public class ControlTheInput extends KeyAdapter {
public void keyTyped(KeyEvent e) {
String key="0123456789"+(char)8;
if(key.indexOf(e.getKeyChar())<0){
e.consume();//如果不是数字则取消
}
}
}
PS:如果要加入一下其他的字符可以在String key = “” 字符串添加即可, 比如说我想控制输入只能为 星号( * )和数字 那么ControlTheInput类里面的key这样写就可以:
String key="*0123456789"+(char)8;//添加 "*" 的位置可以随意