首先要理解三个概念:事件源,监视器,处理事件的接口
事件源 :能够产生事件的对象都称为事件源
监视器(事件接口对象) :对事件源进行监听,以便对发生的事件作出处理(l)
处理事件的接口 :监视器所实例化的那个 类 继承的接口(interface ActionListener)
在我看来,处理事件主要有四个方面的步骤
一、首先你要有一个事件源(对象)
只有组件才能成为事件源,例如JButton,JFrame,JTextField......
根据你的动作来决定那个是事件源对象:你的动作要发生在哪一个组件上,那该组件就是事件源对象
例如你使用微软提供的计算器。计算器上面有很多的按键,可是如果你按了“5”,那么数字“5”那个按键就是事件源对象,而其他的都还 不是
二、参数传递过程(c位:监视器)
根据事件源对象提供的事件监听方法(例:addActionListener(监视器) ),将事件源对象的信息及动作信息
传递给监视器(事件接口对象)进行处理
三、参数传递过程(c位:事件处理方法的参数)
监视器根据你的动作信息,调用相应的事件处理方法
并把事件源对象的信息及动作信息传递给事件处理方法的参数 (ActionEven e)
四、 执行事件处理方法
实例:在登录页面点击登录按钮,会弹出一个新的窗口
public class Login {
public static void main(String[] args) {
Login login = new Login();
login.Init();
}
public void Init() {
JFrame frame = new JFrame(); //设置登录页面的具体信息
frame.setTitle("Login");
frame.setSize(350,500);
frame.setLocationRelativeTo(null);
frame.setLayout(new FlowLayout());
JButton button = new JButton("登录"); //设置登录按钮
frame.add(button);
LoginListener ll = new LoginListener(); // ll 就是监听器
button.addActionListener(ll);
// addActionListener() 就是事件源对象button提供的事件监听方法,其参数就是监视器
// button 上发生的动作将会由 监视器 ll 捕获
frame.setVisible(true); //定义窗口可见
}
}
//ActionLiatener 为处理事件的接口
public class LoginListener implements ActionListener{
// ActionEvent e 监视器接受到信息后将信息传给的 ActionEvent e
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame();
frame.setLayout(new FlowLayout());
frame.setTitle("登录成功窗口");
frame.setSize(new Dimension(500,500));
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}