监听器的使用
Java的事件监听机制
1、事件监听涉及到三个组件:事件源、事件参数对象、事件监听器
2、当事件源上发生某一个动作时,它会调用事件监听器的一个方法,并在调用该方法时把事件参数对象传递进去,
开发人员在监听器中通过事件参数对象,就可以拿到事件源,从而对事件源进行操作。 案例一:GUI编程中监听机制
public static void main(String[] args) {
Frame f = new Frame();
f.setSize(400, 400);
f.setVisible(true);
f.addWindowListener(new WindowListener(){
public void windowActivated(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowClosed(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowClosing(WindowEvent e) {
Frame f = (Frame) e.getSource();
f.dispose();
}
public void windowDeactivated(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowDeiconified(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowIconified(WindowEvent e) {
// TODO Auto-generated method stub
}
public void windowOpened(WindowEvent e) {
// TODO Auto-generated method stub
}
});
}
案例二:观察者设计模式的实现
//设计一个事件源,被监听器监听 Observer(观察者设计模式)
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
Person p = new Person();
p.registerListener(new PersonListener(){
public void doeat(Event e) {
Person p = (Person)e.getSource();
System.out.println(p.getName() + "吃啥呢");
}
public void dorun(Event e) {
Person p = (Person)e.getSource();
System.out.println(p.getName() + "减肥呢");
}
});
p.eat();
}
}
class P