Listening for a Vetoable Property Change Event : Java组件 « 开发相关 « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » 开发相关 » Java组件 
6. 56. 29. Listening for a Vetoable Property Change Event
// A vetoable property change event is fired when a constrained property is changed. 
// A listener can veto the change by throwing PropertyVetoException and preventing the change.

import java.beans.PropertyChangeEvent;
import java.beans.PropertyVetoException;
import java.beans.VetoableChangeListener;
import java.beans.VetoableChangeSupport;

public class Main {
  public static void main(String[] argvthrows Exception {
    MyBean bean = new MyBean();
    bean.addVetoableChangeListener(new MyVetoableChangeListener());
  }
}

class MyVetoableChangeListener implements VetoableChangeListener {
  public void vetoableChange(PropertyChangeEvent evt)
      throws PropertyVetoException {
    Object oldValue = evt.getOldValue();

    Object newValue = evt.getNewValue();

    boolean veto = false;
    if (veto) {
      throw new PropertyVetoException("the reason for the veto", evt);
    }
  }
}

class MyBean {
  VetoableChangeSupport vceListeners = new VetoableChangeSupport(this);

  int myProperty;

  public int getMyProperty() {
    return myProperty;
  }

  public void setMyProperty(int newValuethrows PropertyVetoException {
    try {
      vceListeners.fireVetoableChange("myProperty"new Integer(myProperty),
          new Integer(newValue));
      myProperty = newValue;
    catch (PropertyVetoException e) {
      throw e;
    }
  }

  public synchronized void addVetoableChangeListener(
      VetoableChangeListener listener) {
    vceListeners.addVetoableChangeListener(listener);
  }

  public synchronized void removeVetoableChangeListener(
      VetoableChangeListener listener) {
    vceListeners.removeVetoableChangeListener(listener);
  }

}
6. 56. Java组件
6. 56. 1. Listening for Changes to the Selected File in a JFileChooser Dialog
6. 56. 2. 获取选定的文件清单
6. 56. 3. Listening for Changes to the Current Directory in a JFileChooser Dialog
6. 56. 4. Displaying the Current Directory in the Title of a JFileChooser Dialog
6. 56. 5. 在JFileChooser对话框设置配件组件
6. 56. 6. Convert a bean to XML persistence
6. 56. 7. 监听组件属性变更事件
6. 56. 8. 一个组件的属性名称
6. 56. 9. 防止bean的属性系列化到XML
6. 56. 10. 创建一个组件实例
6. 56. 11. 转换XML持久文件到组件
6. 56. 12. 确定组件属性类型
6. 56. 13. 监听属性变化
6. 56. 14. Bean has a single property called property.
6. 56. 15. Implementing a Bound Property
6. 56. 16. Implementing a Constrained Property: fires a PropertyChangeEvent whenever its value is about to be changed.
6. 56. 17. 一个组件实例
6. 56. 18. 列出一个bean属性名称
6. 56. 19. 使用和设置一个bean属性
6. 56. 20. Get and set the value of a property in a bean using Expression and Statement
6. 56. 21. 获取和设置对象类型属性
6. 56. 22. 获得和设置一个原始类型属性
6. 56. 23. 获得和建立了一个数组类型的属性
6. 56. 24. Serializing a Bean to XML: XMLEncoder only persists the value of public properties.
6. 56. 25. 从XML逆序列化一个组件
6. 56. 26. 防止一个bean属性被序列化到XML
6. 56. 27. Serializing an Immutable Bean Property to XML
6. 56. 28. Listening for a Property Change Event: A property change event is fired when a bound property is changed.
6. 56. 29. Listening for a Vetoable Property Change Event
6. 56. 30. 读取组件的属性值
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.