Java的图形用户界面——事件处理(四)

事件:Java语言将每一个键盘或鼠标的操作定义为一个“事件”
事件响应:当事件发生时程序应该作出何种响应
事件处理的模型:

  • 事件源:产生事件的组件加叫事件源
  • 事件对象:描述系统中发生了什么的对象
  • 事件监视器:对事件进行处理的类

Java有20多个预定义的事件类,它们包含了所有组件上可能发生的事件。每一个事件都有一个相应的事件接口,事件接口中的事件处理方法完成对事件的处理
在这里插入图片描述在这里插入图片描述
事件处理一般方法:

  • 创建将要产生事件的组件对象
  • 构造实现相应事件监视器接口的类,并创建事件监听器对象
  • 为组件对象增加事件监听器对象:
    组件对象.addXxxListener(事件监听器对象);
    如:button.addActionListener(this);

注意:接口中的方法都含有所产生的事件对象参数,使用该参数的getSource()方法可以得到产生该事件的事件源
例如:public void actionPerformed(ActionEvent evt);

事件处理

ActionEvent 与 ActionListener
当单击按钮、在文本域回车、选择组合框中的项目、选择菜单项时产生该事件
ActionListener接口中的方法:

  • void actionPerformed(ActionEvent);
    该事件在实际应用中经常被处理

ActionEvent中的常用方法:

  • String getActionCommand();
    //获得与该动作相联系的组件的命令字符串名称,组件对象可使用
    setActionCommand(String)方法进行设置,默认的命令字符串名称是组件的标签名称 //使用该方法可实现不同组件共用同一段处理代码

ItemEvent 与 ItemListener
当单选按钮、复选按钮、下拉列表框中的项目状态发生变化时产生该事件
ItemListener接口中的方法:

  • void itemStateChanged(ActionEvent);

ItemEvent中的常用方法:

  • Object getItem();
    //返回返回受该事件影响的项目对象,据需要可将Object转换为相应的类型
    int getStateChange();
    //返回项目状态发生变化的类型,取值:
    ItemEvent.SELECTED
    ItemEvent.DESELECTED

WindowEvent 与 WindowListener
WindowListener接口中的方法:

  • void windowActivated(WindowEvent);
    //处理窗口被设置为当前活动窗口时触发的事件

  • void windowDeactivated(WindowEvent);
    //处理窗口被设置为非活动窗口时触发的事件

  • void windowIconified(WindowEvent);
    //处理窗口最小化时触发的事件

  • void windowDeiconified(WindowEvent);
    //处理窗口从最小化变为正常大小时触发的事件

  • void windowCloseing(WindowEvent);
    //处理用户试图关闭窗口时触发的事件

  • void windowClosed(WindowEvent);
    //处理窗口被关闭时触发的事件

WindowAdapter适配器
windowListener接口中含有较多的方法,实现时比较麻烦。为此,Java提供了适配器类WindowAdapter,该类实现了WindowListener接口,可用该类或其子类创建监听器
注意:凡含两个以上方法的监听器都有对应的适配器
适配器类实现一个对应的接口,只是方法为空

事件适配器类(Adapter)
只实现接口所需要处理的方法<–>通过覆盖
介于接口中的其它方法:系统会提供默认的方法
事件适配器类与事件监听器接口的区别

  • 利用事件适配器类,只需实现所需处理的方法
  • 利用事件监听器接口,必须实现所有的方法
    在这里插入图片描述

ListenSelectionEvent 与 ListSelectionListener
当列表框中的项目发生变化时产生该事件
ListSelectionListener接口中的方法:

  • void valueChanged(ListSelectionEvent);
    处理事件时常使用列表框(JList)对象本身提供的一些方法

ChangeEvent 与 ChangeListener
当进度条,滑动条、微调器、标签窗格等组件的状态发生变化时产生该事件
ChangeListener接口中的方法:

  • void stateChanged(ChangeEvent);

FocusEvent 与 FocusListener
当组件获得或失去输入焦点时产生该事件
FocusListener接口中的方法:

  • void focusGained(FocusEvent);
  • void focusLost(FocusEvent);

FocusEvent中的常用方法:

  • Component getOppositeComponent();

FocusAdapter适配器

MouseEvent 与 MouseListener
当在组件上进行鼠标基本操作时产生该事件
MouseListener接口中的方法:

  • void mousePressed(MouseEvent);
  • void mouseReleased(MouseEvent);
  • void mouseClicked(MouseEvent);
  • void mouseEntered(MouseEvent);
  • void mouseExited(MouseEvent);

MouseEvent中的常用方法:

  • int getButton(); //NOBUTTON,BUTTON1,BUTTON2,BUTTON3
  • boolean isAltDown();
  • boolean isControlDown();
  • boolean isShiftDown();
  • int getClickCount();
  • Point getPoint();
  • int getX();
  • int getY();
  • boolean isPopupTrigger();
    //是否是触发弹出式菜单的鼠标操作

MouseAdapter适配器

MouseEvent 与 MouseMotionListener
当在组件上进行鼠标拖动或移动时产生该事件
MouseMotionListener接口中的方法:

  • void mouseDragged(MouseEvent);
  • void mouseMoved(MouseEvent);

MouseMotionAdapter适配器

KeyEvent 与 KeyListener
当组件上发生击键时产生该事件
KeyListener接口中的方法:

  • void keyPressed(KeyEvent);
  • void keyReleased(KeyEvent);
  • void keyTyped(KeyEvent);

KeyEvent中的常用方法:

  • char getKeyChar(); //返回字符键值
  • int getKeyCode(); //返回整数键值
  • boolean isAltDown();
  • boolean isControlDown();
  • boolean isShiftDown();

注意:KeyEvent中定义了表示键的常量,如VK_l
KeyAdapter适配器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值