package cn.itcast_08;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
* 你输入的如果是非数字字符,就取消你的键盘录入效果
*
*/
public class 只在文本框内输入数字字符 {
public static void main(String[] args) {
//创建窗体对象并设置属性
Frame f = new Frame("不能输入非数字字符");
f.setBounds(400, 200, 400, 200);
f.setLayout(new FlowLayout());
//创建Label标签对象
Label lable = new Label("请输入你的QQ号码,不能是非数字");
//创建文本框
TextField tf = new TextField(40);
//对文本框添加键盘事件
tf.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//取消事件
//思路:先获取字符,判断字符,取消字符
//char getKeyChar()返回此事件中关联的字符
//public void consume()不会产生事件
char c = e.getKeyChar();
if(!(c>='0' && c<='9')) {
e.consume();
}
}
});
//添加到窗体上
f.add(lable);
f.add(tf);
//窗口关闭
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
f.setVisible(true);
}
}
GUI键盘事件之只在文本框内输入数字字符
于 2020-10-18 19:35:48 首次发布