歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java 自定義監聽器監聽屬性變化

Java 自定義監聽器監聽屬性變化

日期:2017/3/1 10:46:12   编辑:Linux編程

Java 自定義監聽器監聽屬性變化

  1. import java.util.EventObject;
  2. public class MyEvent extends EventObject
  3. {
  4. private Object obj;
  5. private String sName;
  6. public MyEvent(Object source,String sName)
  7. {
  8. super(source);
  9. this.obj=source;
  10. this.sName=sName;
  11. }
  12. public Object getObj()
  13. {
  14. return obj;
  15. }
  16. public String getsName()
  17. {
  18. return sName;
  19. }
  20. }
  21. import java.util.EventListener;
  22. public interface MyEventListener extends EventListener
  23. {
  24. public void handleEvent (MyEvent me);
  25. }
  26. import java.util.Iterator;
  27. import java.util.Vector;
  28. import demo.DemoEvent;
  29. public class MyEventSource
  30. {
  31. private Vector list=new Vector();
  32. private String sName = "";
  33. public MyEventSource()
  34. {
  35. super();
  36. }
  37. public void addMyEventListener(MyEventListener me)
  38. {
  39. list.add(me);
  40. }
  41. public void deleteMyEventListener(MyEventListener me)
  42. {
  43. list.remove(me);
  44. }
  45. public void notifyMyEvent(MyEvent me)
  46. {
  47. Iterator it=list.iterator();
  48. while(it.hasNext())
  49. {
  50. ((MyEventListener) it.next()).handleEvent(me);
  51. }
  52. }
  53. public void setName(String str)
  54. {
  55. boolean bool = false;
  56. if (str == null && sName != null)
  57. bool = true;
  58. else if (str != null && sName == null)
  59. bool = true;
  60. else if (!sName.equals(str))
  61. bool = true;
  62. this.sName = str;
  63. // 如果改變則執行事件
  64. if (bool)
  65. notifyMyEvent(new MyEvent(this, sName));
  66. }
  67. public String getsName()
  68. {
  69. return sName;
  70. }
  71. }
  72. public class Test implements MyEventListener
  73. {
  74. public Test()
  75. {
  76. MyEventSource mes = new MyEventSource();
  77. mes.addMyEventListener(this);
  78. mes.setName("niu");
  79. }
  80. public static void main(String args[])
  81. {
  82. new Test();
  83. }
  84. public void handleEvent(MyEvent me)
  85. {
  86. System.out.println(me.getSource());
  87. System.out.println(me.getsName());
  88. }
  89. }
Copyright © Linux教程網 All Rights Reserved