国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java—監聽器 (55)

2019-11-15 00:04:05
字體:
來源:轉載
供稿:網友
java—監聽器 (55)

監聽器存在以下對象

監聽者:XxxxxListener - 所的監聽者是的接口。

被監聽者 :任意對象都可以成為被監聽者 - 早已經存在。

監聽到的事件:XxxxEvent- 永遠是一個具體類,用來放監聽到的數據

里面都有一個方法叫getSource() – 返回的是監聽到對象。

案例一:

package cn.hx.demo;

public class MyFrame extends JFrame {

public MyFrame() {

JButton btn = new JButton("你好"); //被監聽者

System.err.

btn.addActionListener(new MyListener()); //監聽者

setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

//獲取容器

Container con= getContentPane();

//設置布局

con.setLayout(new FlowLayout());

con.add(btn);

setSize(300, 300);

setVisible(true);

}

public static void main(String[] args) {

new MyFrame();

}

//實現一個監聽者

class MyListener implements ActionListener{

//監聽方法

public void actionPerformed(ActionEvent e) {

System.err.println("我監聽到了:"+e.getSource()hashCode()); //可以從監聽到的事件中獲監聽到的對象。

}

}

}


案例二:

觀察者模式模擬監聽

package cn.hx.demo;

public class TestObersver {

public static void main(String[] args) {

Person person = new Person();//聲明被觀察者

System.err.println("pp:"+person);

person.addPersonListener(new PersonListener() {

public void running(PersonEvent pe) {

System.err.println("你正在跑....."+pe.getSource());

throw new RuntimeException("他跑了。。。");

}

});

person.run();

}

}

class Person{

private PersonListener pl;

public void addPersonListener(PersonListener pl){

this.pl = pl;

}

public void run(){

if(pl!=null){

pl.running(new PersonEvent(this));

}

System.err.println("我正在跑步......");

}

}

interface PersonListener{

void running(PersonEvent pe);

}

class PersonEvent{

private Object src;

public PersonEvent(Object obj) {

this.src=obj;

}

public Object getSource(){

return src;

}

}

與上面的案例一進行對比,體會監聽器做了什么。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 祁阳县| 黎川县| 报价| 泾阳县| 简阳市| 巴彦淖尔市| 满洲里市| 中西区| 弥勒县| 佛坪县| 棋牌| 南和县| 公主岭市| 东兰县| 重庆市| 馆陶县| 德昌县| 宿州市| 建湖县| 庐江县| 沙河市| 太湖县| 峨眉山市| 彰武县| 沈丘县| 淳化县| 澄迈县| 禹州市| 丹江口市| 威信县| 汝南县| 西乌珠穆沁旗| 阜新| 略阳县| 那坡县| 禄丰县| 自治县| 时尚| 高碑店市| 建平县| 永康市|