在程序中,只有图形界面才使用事件监听机制。
事件源对象:
有哪些内容可以成为事件源对象?
只有容器组件和元素组件才可以成为事件源对象;
例如:JFrame、JLabel、JTextField、JPasswordField、JButton
图形界面是由多个组件组成,如何确定图形界面上哪一个组件是事件源对象?
你的动作发生在哪一个组件上,并且还要有相应的操作,接收动作的组件就是事件源对象。
事件监听方法
事件监听方法是由事件源对象提供的。
当你给事件源对象添加上事件监听方法后,你在事件源对象上发生对应的动作时,事件监听方法就会捕获动作,然后收集事件源对象的信息和动作信息,将这些信息交给事件监听方法的参数对象进行处理。
事件接口(事件处理类):
事件接口是由事件监听方法决定的。
事件接口的对象拿到信息后,会根据动作信息调用对应的事件处理方法,同时把信息封装到对应事件处理方法的参数对象中,最后执行方法中的代码。
ActionListener, MouseListener
当ActionListener, MouseListener同时发生是,只执行ActionListener;
实例分析
目标:点击登录界面上的登录按钮,显示一个新窗体(关闭登录窗体)。
事件监听机制
事件源对象:登录按钮JButton
事件监听方法:addActionListener(ActionListener l)
这个动作监听方法针对按钮组件和输入框组件设计的,这个动作监听方法会捕获按钮组件事件源对象上的鼠标点击动作,也会捕获输入框组件上的键盘回车动作;然后会收集事件源对象的信息和动作信息;将这些信息交给ActionListener这个参数对象进行处理。
事件接口(事件处理类):ActionListener
当ActionListener的对象拿到信息后,就会调用actionPerformed(ActionEvent e)事件处理方法,将事件源对象的信息和动作信息封装到ActionEvent的对象中,最后执行方法中的代码。
实现步骤:
1.新建一个LoginListener事件处理类,该类实现ActionListener动作事件接口,重写接口中的抽象方法;
2.在事件处理方法中,实例化窗体对象,设置窗体的属性值;
3.实例化事件处理类的对象;
4.给登录按钮事件源对象添加addActionListener()动作事件监听方法,还要指定事件处理类的对象。