知识大全 Java Listener模式
Posted 知
篇首语:博观而约取,厚积而薄发。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java Listener模式相关的知识,希望对你有一定的参考价值。
Java Listener模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
每种语言都有自己回调的方法 java也不例外
Java的回调是采用多态的方式来回调 比如:
interface MouseListener
//当click方法被调用的时候代表被鼠标点击了
void click();
上面是一个接口 里面只有一个方法 先就通过一个例子展示java是如果施展多态的力量了
public class Model
//初始化 个监听器
private MouseListener[] listeners = new MouseListener[ ];
//用于记录当前listeners数组记录到了哪里
int index = ;
public void addListener(MouseListener listener)
//向这个model中注册一个监听器
listeners[index++] = listener;
public void clickModel()
//调用注册进来所有的listener的click方法
for (int i = ; i < index; i++)
listeners[i] click();
//测试model
public static void main(String[] args)
Model model = new Model();
//添加一个匿名内部类 里面实现了click方法
model addListener(new MouseListener()
public void click()
System out println( 我被点击了 );
);
//再添加一个内部类
model addListener(new MouseListener()
public void click()
System out println( 我被点击了 );
);
//下面给model一个点击
model clickModel();
以上是java的MVC框架下最精彩的一段代码 下面是model的工作例子:
//测试model
public static void main(String[] args)
Model model = new Model();
//添加一个匿名内部类 里面实现了click方法
model addListener(new MouseListener()
public void click()
System out println( 我被点击了 );
);
//再添加一个内部类
model addListener(new MouseListener()
public void click()
System out println( 我被点击了 );
);
//下面给model一个点击 在实际的JDK源代码中 也是这样子去调用Model中的响应方法的
model clickModel();
我们可以看到 只点击一次model 却可以输出了 次 我被点击了 的信息 这也就是为什么你可以向JButton JComboBox JList JTable等等里面添加任意多的各种listener 当然其中的奥秘仍需要各位读者自己慢慢琢磨 下面是源代码:
public class Model
//初始化 个监听器
private MouseListener[] listeners = new MouseListener[ ];
//用于记录当前listeners数组记录到了哪里
int index = ;
public void addListener(MouseListener listener)
//向这个model中注册一个监听器
listeners[index++] = listener;
public void clickModel()
//调用注册进来所有的listener的click方法
for (int i = ; i < index; i++)
listeners[i] click();
//测试model
public static void main(String[] args)
Model model = new Model();
//添加一个匿名内部类 里面实现了click方法
model addListener(new MouseListener()
public void click()
System out println( 我被点击了 );
);
//再添加一个内部类
model addListener(new MouseListener()
public void click()
System out println( 我被点击了 );
);
//下面给model一个点击
model clickModel();
interface MouseListener
//当click方法被调用的时候代表被鼠标点击了
void click();
cha138/Article/program/Java/hx/201311/26201相关参考
问题一台机器同时装两套数据库时(实例名oo)无法同时启动两个listener当启动第二个listener时显示错误 $lsnrctlstart LSNRCTLforIBM/AIXRISCSyste
抽象类WindowAdapter是变压器模式的一个例子 抽象类WindowAdapter是为接受视窗的事件而准备的此抽象类内所有的方法都是空的使用此类可以很方便地创立listener对象置换(O
当然也可以结合工厂模式来创建AbstractSpoon实例 在Java中Prototype模式变成clone()方法的使用由于Java的纯洁的面向对象特性 使得在Java中使用设计模式变得很自
Java设计模式-----Command模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 源自
Java设计模式-----State模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 源自
Java与模式之单例模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 单例模式(Singlet
Java设计模式之Strategy模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Strat
Java设计模式之Observer模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Obser
Java设计模式之Command模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Comman
Java设计模式之Adapter模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 通常客户类(