GUI的监听机制(例子:只能输入数字)

事件监听机制的特点:

1.事件源

2, 事件

3,监听器

4,事件处理

事件源:就是awt包或者swing包中的那些图形界面组件.

事件:每一个事件源都有自己特有的对应事件和共性事件.

监听器:将可以触发某事件的动作(不止一个动作)都已经封装到了监听器中.

事件处理:就是重写Listener或Adapter中方法,对具体的时间进行具体的处理.


适配器是实现了Listener的抽象类,因为Listener是接口,方法太多,实现太麻烦.

就用Adapter进行实现,重写方法,但方法体是空的.这样就可以直接继承适配器重写要用的方法就行.

适配器就是可以简化代码.


下面一个实现键盘监听的例子:

import java.awt.*;
import java.awt.event.*;
class KeyEventDemo {
public static void main(String[] args) {
KeyEventDemo ke = new KeyEventDemo();
}


KeyEventDemo(){
init();
}


private Frame frame;
private Label label1;
private Label label2;
private TextField tf;


public void init(){

frame = new Frame("my Window");
frame.setBounds(200,300,400,500);
frame.setLayout(new FlowLayout());


label1 = new Label("账号:");
frame.add(label1);


tf = new TextField(30);
frame.add(tf);


label2 = new Label("只能输入数字!");
label2.setVisible(false);
frame.add(label2);


frame.setVisible(true);


myEvent();
}


public  void  myEvent(){
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});


tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
if((e.getKeyCode()>KeyEvent.VK_0 && e.getKeyCode()<KeyEvent.VK_9)
||e.getKeyCode()==KeyEvent.VK_BACK_SPACE){
label2.setVisible(false);
//刷新窗体,隐藏lable
frame.setVisible(true);
}
else{
//忽略该事件,即撤销非法的操作
e.consume();
//显示警告标签
label2.setVisible(true);
//刷新窗体,让lables显示
frame.setVisible(true);
}
}
});
}


}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值