/**
* 事件对象,封装了事件的事件源以及和该事件相关的数据
* @author Administrator
*
*/
public interface Event {
}
/**
* 单击的监听器
* @author Administrator
*
*/
public interface ClickListener {
/**
* 单击事件
* @param event
*/
public void onClick(Event event);
}
import javax.swing.JOptionPane;
/**
* 按钮的单击监听器
* @author Administrator
*
*/
public class ButtonListener implements ClickListener {
@Override
public void onClick(Event event) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, "press another button!");
}
}
/**
* 观察者设计模式的使用
* @author Administrator
*
*/
public class MyButton {
private ClickListener listener;
/**
* 单击
*/
public void click(){
listener.onClick(null);
}
/**
* 绑定监听器
* @param listener
*/
public void addOnClickListener(ClickListener listener){
this.listener = listener;
}
}
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//实例化按钮
MyButton btn = new MyButton();
//为按钮绑定单击监听器
btn.addOnClickListener(new ButtonListener());
//模拟实现单击动作
btn.click();
}
}