国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - JAVA用戶(hù)自定義事件監(jiān)聽(tīng)實(shí)例代碼

JAVA用戶(hù)自定義事件監(jiān)聽(tīng)實(shí)例代碼

2020-09-13 12:19Java教程網(wǎng) Java教程

這篇文章主要介紹了JAVA用戶(hù)自定義事件監(jiān)聽(tīng)實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

JAVA用戶(hù)自定義事件監(jiān)聽(tīng)實(shí)例代碼

很多介紹用戶(hù)自定義事件都沒(méi)有例子,或是例子不全,下面寫(xiě)了一個(gè)完整的例子,并寫(xiě)入了注釋以便參考,完整的實(shí)例源代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package demo;
import Java.util.EventObject;
/**
* Title: 事件處理類(lèi),繼承了事件基類(lèi)
* Description:
* Copyright: Copyright (c) 2005
* Company: cuijiang
* @author not attributable
* @version 1.0
*/
public class DemoEvent extends EventObject
{
  private Object obj;
  private String sName;
  public DemoEvent(Object source,String sName)  {
   super(source);
   obj = source;
   this.sName=sName;
  }
  public Object getSource()
  {
   return obj;
  }
  public void say()
  {
   System.out.println("這個(gè)是 say 方法...");
  }
  public String getName()
  {
   return sName;
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package demo;
import java.util.EventListener;
/**
* Title: 監(jiān)聽(tīng)器接口
* Description:
* Copyright: Copyright (c) 2005
* Company: cuijiang
* @author not attributable
* @version 1.0
*/
public interface DemoListener extends EventListener{
  public void demoEvent(DemoEvent dm);
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package demo;
import java.util.*;
/**
* Title: 使用事件的類(lèi)
* Description: 該類(lèi)實(shí)現(xiàn)了監(jiān)聽(tīng)器的添加和監(jiān)聽(tīng)器方法的執(zhí)行,并且實(shí)現(xiàn)了由于屬性的改變而執(zhí)行事件
* Description: 在添加、刪除、執(zhí)行監(jiān)聽(tīng)器的時(shí)候都要注意同步問(wèn)題
* Copyright: Copyright (c) 2005
* Company: cuijiang
* @author not attributable
* @version 1.0
*/
public class DemoSource{
  private Vector repository = new Vector();
  private DemoListener dl;
  private String sName="";
  public DemoSource()
  {
  }
  //注冊(cè)監(jiān)聽(tīng)器,如果這里沒(méi)有使用Vector而是使用ArrayList那么要注意同步問(wèn)題
  public void addDemoListener(DemoListener dl)
  {
   repository.addElement(dl);//這步要注意同步問(wèn)題
  }
  //如果這里沒(méi)有使用Vector而是使用ArrayList那么要注意同步問(wèn)題
  public void notifyDemoEvent(DemoEvent event) {
   Enumeration enum = repository.elements();//這步要注意同步問(wèn)題
   while(enum.hasMoreElements())
   {
    dl = (DemoListener)enum.nextElement();
    dl.demoEvent(event);
   }
  }
  //刪除監(jiān)聽(tīng)器,如果這里沒(méi)有使用Vector而是使用ArrayList那么要注意同步問(wèn)題
  public void removeDemoListener(DemoListener dl)
  {
   repository.remove(dl);//這步要注意同步問(wèn)題
  }
  /**
  * 設(shè)置屬性
  * @param str1 String
  */
  public void setName(String str1)
  {
   boolean bool=false;
   if(str1==null && sName!=null) bool=true;
   else if(str1!=null && sName==null) bool=true;
   else if(!sName.equals(str1)) bool=true;
   this.sName=str1;
   //如果改變則執(zhí)行事件
   if(bool) notifyDemoEvent(new DemoEvent(this,sName));
  }
  public String getName()
  {
   return sName;
  }
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package demo;
import java.lang.Thread;
/**
* Title: 測(cè)試類(lèi)
* Description: 測(cè)試了由于改變屬性而引起的事件發(fā)生
* Copyright: Copyright (c) 2005
* Company: cuijiang
* @author not attributable
* @version 1.0
*/
public class TestDemo
   implements DemoListener {
  private DemoSource ds;
  public TestDemo()
  {
   ds=new DemoSource();
   ds.addDemoListener(this);
   System.out.println("添加監(jiān)聽(tīng)器完畢");
   try {
    Thread.sleep(3000);
    //改變屬性,觸發(fā)事件
    ds.setName("改變屬性,觸發(fā)事件");
   }
   catch (InterruptedException ex) {
    ex.printStackTrace();
   }
   ds.addDemoListener(this);
   System.out.println("添加監(jiān)聽(tīng)器完畢2");
   try {
    Thread.sleep(3000);
    //改變屬性,觸發(fā)事件
    ds.setName("改變屬性,觸發(fā)事件2");
   }
   catch (InterruptedException ex) {
    ex.printStackTrace();
   }
   ds.removeDemoListener(this);
   System.out.println("添加監(jiān)聽(tīng)器完畢3");
   try {
    Thread.sleep(3000);
    //改變屬性,觸發(fā)事件
    ds.setName("改變屬性,觸發(fā)事件3");
   }
   catch (InterruptedException ex) {
    ex.printStackTrace();
   }
 
  }
  public static void main(String args[])
  {
   new TestDemo();
  }
  /**
  * demoEvent
  *
  * @param dm DemoEvent
  * @todo Implement this test.DemoListener method
  */
  public void demoEvent(DemoEvent dm) {
   System.out.println("事件處理方法");
   System.out.println(dm.getName());
   dm.say();
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/qq_26562641/article/details/50667496

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 亚洲 自拍 另类 欧美 丝袜 | 一区二区乱码 | 久久精品一区二区三区四区 | 亚洲成a人v欧美综合天堂麻豆 | 久久国产精品一区 | 九九热精品在线 | av毛片在线 | 高清视频一区 | 中文字幕在线永久在线视频 | 国产视频1区 | 日韩一片 | 欧美国产精品一区 | 久久国产亚洲精品 | 亚洲国产精品久久久 | 亚洲va欧美va天堂v国产综合 | av影片在线 | 国产综合在线观看视频 | 久久久久久国产精品mv | 欧美大片免费在线观看 | 香蕉av在线 | 涩涩久久| 日本黄色美女视频 | 日本黄色片免费看 | 欧美中文字幕一区二区 | 亚洲一区精品在线 | 特黄特色的大片观看免费视频 | 欧美日韩一区在线观看 | 日本黄色美女视频 | 欧美日韩在线一区 | 亚洲第一视频 | 国产一级毛片国语一级 | 精品久久一区二区三区 | 欧美日韩一区二区在线观看 | 亚洲精品福利在线 | 亚洲视频精品 | 欧美激情一区二区三区 | 黄色免费网 | 国产午夜精品久久久久久久 | 伊人网在线观看 | 日本不卡在线观看 | 五月婷婷激情网 |