swing-监听器

曾经沧海难为水,除却巫山不是云。

事件监听器

  • 类要对用户事件作出响应,必须实现处理该事件的接口,这些接口被称为事件监听器。

  • 每个监听器都处理特定的事件,类可以根据需要实现任意数目的监听器。
    监听器模型

  • 监听器模型涉及以下三个对象,模型图如下:
    (1)事件:用户对组件的一个操作,称之为一个事件
    (2)事件源:发生事件的组件就是事件源
    (3)事件监听器(处理器):监听并负责处理事件的方法

  • 在java中,事件监听器包含如下接口:
    (1)ActionListener:行为事件,由用户对组件执行某种操作(如单击按钮)触发。
    (2)AdjustmentListener:调整事件,组件被调整(如移动滚动条上的滑块时)触发。
    (3)FocusListener:键盘焦点事件,诸如文本框等组件获得或失去焦点时触发。
    (4)ItemListener:选项事件,诸如复选框等选项被修改时激发。
    (5)KeyListener:键盘事件,用户通过键盘输入文本时激发。
    (6)MouseListener:鼠标事件,鼠标单击,鼠标移入 ,或离开组件时触发。
    (7)MouseMotionListener:鼠标移动事件,跟踪鼠标在组件上的运动。
    (8)WindowListener:窗口事件,窗口(如应用程序的主窗口)被最大化、最小化、移动或关闭时被触发。

  • 执行顺序如下:
    1、给事件源注册监听器
    2、组件接受外部作用,也就是事件被触发
    3、组件产生一个相应的事件对象,并把此对象传递给与之关联的事件处理器
    4、事件处理器启动,并执行相关的代码来处理该事件。

给组件注册监听器

创建组件之后,可以通过下面的方法将组件和监听器关联起来。
(1)addActionListener():JButton、JCheck、JComboBox、JTextField、JRadioButton
(2)addAdjustmentListener():JScrollBar组件
(3)addFoucusListener():所有的swing组件
(4)addItemListener():JButton、JCheckBox、JComboBox和JRadioButton组件
(5)addKeyListener():所有的swing组件
(6)addMouseListener():所有的swing组件
(7)addMouseMotionListener():所有的swing组件
(8)addWindowListener():所有的JWindow和JFrame组件。
将组件加入容器之前,必须将组件和监听器关联起来,并完成其他配置操作,否则当程序运行时,这些设置将被忽略。

事件处理方法

  • 所有的add方法都接受一个参数:对事件进行监听的对象,This表示当前类就是事件监听器。也可以指定其他的对象,只要它实现了相应的监听器接口。
  • 就事件监听器来说,每个方法都是由窗口系统自动调用的,这是在对应的用户事件发生时进行的。
  • 如果多个组件有相同的监听器,则必须判断程序中哪个组件被使用了,每种事件处理方法都接受某种事件对象作为参数,这种对象的方法getSource()可用来判断激发事件的组件。

行为事件

  • 行为事件在用户使用JButton,JCheckBox,JComboBox,JTextField
    JRadioButton.时发生的。
  • 要处理这些事件,类必须实现接口ActionListener。此外,必须对每个要激发行为事件的组件调用addActionListener()。
  • 方法actionPerformed(Action Event)是接口ActionListener中唯一的方法,其格式为:
			public void actionPerformed(ActionEvent evt){
			}

行为事件实例

package ActionListenerDemo;

import java.awt.FlowLayou
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值