Java事件监听机制在Java图形界面编程处常用,比如我们写好这样一个图形界面程序:
我们会对界面进行一些操作,比如输入框中输入数据,点击登录按钮等,这些操作被称之为事件,当采取这些操作后,程序应会采取一定的措施响应。如:
那么在程序中是如何实现这个操作呢?
下面以点击登录按钮为例,讲述java事件监听机制(3种参与者、事件处理的实现步骤、事件的执行流程)。
1、事件监听机制的3种参与者
建立事件监听机制首先要明白什么是事件源对象,怎样为事件源对象添加事件监听方法及根据监听方法来确定事件接口。
1)事件源对象
什么是事件源对象:
事件源对象指触发事件发生的控件。所有的容器组件和元素组件都可以是事件源对象。本例中对应的事件源对象就是‘登录按钮’这一元素组件。
2)事件监听方法
在本例中,我们的需求是如果当登录按钮被点击,程序会采取相应操作。
这就需要我们为事件源对象(登录按钮)添加一个监视器,来监视事件源上是否发生了对应的动作。
它的作用是捕获发生在事件源对象上的动作,它具体由动作来确定。
格式(以ActionListener为例):
事件源对象.addActionListener(ActionListener
action)
本例为buttonLog(登录按钮对象)添加了一个监听方法。
//Java中,每个事件都对应有一个事件监听器,他们被定义在java.awt.event包中。
3)事件接口及实现(监视器类)
如果我们点击登录按钮后,程序采取对应的操作,我们必须要实现监听器接口(定义一个监视器类),在actionPerformed(ActionEvent e)这个方法里定义事件的处理方法。
以ActionListener接口为例。源代码:
ActionListener只有一个事件处理方法,当事件源对象发生动作时,都会采取这个唯一的方法处理。
2、事件监听机制的实现步骤
1)定义事件处理类(监视器类)
重写接口里的抽象方法,在重写的方法里定义事件处理的方式。
2)在Login(登录类)中实例化LoginListener(监视器类)对象:
//我这里的登录类定义了一个窗体及一些相关组件,包括textName输入框(用户名),textPwd密码输入框,及buttonLog(登录按钮)等。
3)给事件源(登录按钮buttonLog)对象添加addActionListener()监听方法。
3、事件的执行流程
事件源对象上发生动作→监听方法捕获动作→动作传递给捕获方法中参数对象→参数对象自动调用实现类(监视器类)中的方法采取相应的操作。