需求:
创建一个含有标签和文本框的窗体,其中文本框只能输入数字步骤:(大致上)
创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体关闭监听事件 设置显示窗体
代码:
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 }