需求:
创建一个含有标签和文本框的窗体,其中文本框只能输入数字
步骤:(大致上)
创建窗体对象
创建标签对象
创建文本框对象
把组件添加到窗体中
设置标签的监听事件,对键盘按下的数据进行监听
设置窗体关闭监听事件
设置显示窗体
代码:
1 public class FrameTest3 { 2 3 public static void main(String[] args) { 4 5 // 创建窗体对象 6 Frame f = new Frame("QQ号码"); 7 f.setBounds(300, 300, 500, 400); 8 f.setLayout(new FlowLayout());//别忘了布局设置 9 10 // 创建标签对象 11 Label l = new Label("请输入QQ号码,非数字显示不出来"); 12 13 // 创建文本框对象 14 TextField tf = new TextField(20); 15 16 // 把组件添加到窗体中 17 f.add(l); 18 f.add(tf); 19 20 // 设置窗体关闭监听事件 21 f.addWindowListener(new WindowAdapter() { 22 public void windowClosing(WindowEvent e) { 23 System.exit(0); 24 } 25 }); 26 27 // 设置文本框的监听事件,对输入的数据进行监听 28 // 由于是不让非数字的数据出现到文本框中 29 // 所以监听对象是键盘:KeyListener键盘侦听器 KeyAdapter 键盘适配器 30 tf.addKeyListener(new KeyAdapter() { 31 // public void keyPressed(KeyEvent e)按下某个键时调用此方法。 32 public void keyPressed(KeyEvent e) {// KeyEvent:键盘类 33 // 首先得获取到键盘按下的字符 34 // 然后进行判断是否是数字键,如果不是,则取消这次操作 35 // public void consume()使用此事件,以便不会按照默认的方式由产生此事件的源代码来处理此事件。 36 37 char c = e.getKeyChar(); 38 39 if (!(c >= '0' && c <= '9')) { 40 e.consume(); 41 } 42 } 43 }); 44 45 46 47 // 设置显示窗体 48 f.setVisible(true); 49 50 } 51 }