JavaBeans 程序开发从入门到精通教程2

4. Constrained属性

一个JavaBeans的constrained属性,是指当这个属性的值要发生变化时,与这个属性已建立了某种连接的其它Java对象可否决属性值的改变。constrained属性的监听者通过抛出PropertyVetoException来阻止该属性值的改变。例:下面程序中的constrained属性是PriceInCents。

public class JellyBeans extends Canvas{

private PropertyChangeSupport changes=new PropertyChangeSupport(this);

private VetoableChangeSupport Vetos=new VetoableChangeSupport(this);

/*与前述changes相同,

可使用VetoableChangeSupport对象的实例Vetos中的方法,

在特定条件下来阻止PriceInCents值的改变。*/

......

public void setPriceInCents(int newPriceInCents) throws PropertyVetoException {

/*方法名中throws PropertyVetoException的作用是当有

其它Java对象否决PriceInCents的改变时,

要抛出例外。*/

/* 先保存原来的属性值*/

int oldPriceInCents=ourPriceInCents;

/**点火属性改变否决事件*/

vetos.fireVetoableChange("priceInCents",new Integer(OldPriceInCents),

new Integer(newPriceInCents));

/**若有其它对象否决priceInCents的改变,

则程序抛出例外,不再继续执行下面的两条语句,

方法结束。若无其它对象否决priceInCents的改变,

则在下面的代码中把ourPriceIncents赋予新值,

并点火属性改变事件*/

ourPriceInCents=newPriceInCents;
changes.firePropertyChange("priceInCents",
new Integer(oldPriceInCents),
new Integer(newPriceInCents));
}

/**与前述changes相同,

也要为PriceInCents属性预留接口,

使其它对象可注册入PriceInCents否决改变监听者队列中,

或把该对象从中注销

public void addVetoableChangeListener(VetoableChangeListener l)
{ vetos.addVetoableChangeListener(l);
}
public void removeVetoableChangeListener(VetoableChangeListener l){
vetos.removeVetoableChangeListener(l);
}
......
}

从上面的例子中可看到,一个constrained属性有两种监听者:属性变化监听者和否决属性改变的监听者。否决属性改变的监听者在自己的对象代码中有相应的控制语句,在监听到有constrained属性要发生变化时,在控制语句中判断是否应否决这个属性值的改变。

总之,某个Beans的constrained属性值可否改变取决于其它的Beans或者是Java对象是否允许这种改变。允许与否的条件由其它的Beans或Java对象在自己的类中进行定义。

时间: 2024-09-15 14:35:22

JavaBeans 程序开发从入门到精通教程2的相关文章

JavaBeans程序开发从入门到精通教程精解

程序|教程 JavaBeans的属性 JavaBeans的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量.在JavaBeans设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性. 1.Simple属性 一个简单属性表示一个伴随有一对get/set方法(C语言的过程或函数在Java程序中称为"方法")的变量.属性名与和该属性相关的get/set方法名对

JavaBeans 程序开发从入门到精通教程3

JavaBeans用户化 JavaBeans开发者可以给一个Beans添加用户化器(Customizer).属性编辑器(PropertyEditor)和BeansInfo接口来描述一个Beans的内容,Beans的使用者可在构造环境中通过与Beans附带在一起的这些信息来用户化Beans的外观和应做的动作.一个Beans不必都有BeansCustomizer.PrpertyEditor和BeansInfo,根据实际情况,这些是可选的,当有些Beans较复杂时,就要提供这些信息,以Wizard的方

JavaBeans 程序开发从入门到精通教程1

JavaBeans的属性 JavaBeans的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量.在JavaBeans设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性. 1. Simple属性 一个简单属性表示一个伴随有一对get/set方法(C语言的过程或函数在Java程序中称为"方法")的变量.属性名与和该属性相关的get/set方法名对应.例如:

JavaBeans程序开发从入门到精通

JavaBeans的属性 JavaBeans的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量.在JavaBeans设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性. 1. Simple属性 一个简单属性表示一个伴随有一对get/set方法(C语言的过程或函数在Java程序中称为"方法")的变量.属性名与和该属性相关的get/set方法名对应.例如:

《C语言开发从入门到精通》一第2章 C语言开发工具详解2.1 用DOS开发C程序

第2章 C语言开发工具详解 C语言开发从入门到精通 古人云:工欲善其事,必先利其器.由第1章的内容我们了解到,C语言开发工作需要使用专门的开发工具,这样才能起到事半功倍的效果.在本章的内容中,将简要介绍常用的几种C语言开发工具,详细介绍它们的安装和使用方法,为读者步入本书后面知识的学习打下基础. 本章内容 用DOS开发C程序 在Windows环境下开发C程序 在Linux下开发C程序 技术解惑 安装Visual Studio 2010的几个常见问题 有没有轻量级的.可以复制和粘贴代码的工具 Wi

《Java 开发从入门到精通》—— 第2章 第一段Java程序 2.1 搭建Java开发平台

第2章 第一段Java程序 Java 开发从入门到精通经过本书第1章内容的学习,已经了解了Java语言的基本特点,并且对面向对象编程思想有了一个大体了解.从本章开始,将和大家一起来学习Java语言的基本知识.在学习具体语法知识之前,首先讲解搭建Java开发环境的方法,并通过一段程序来介绍Java的运作机制,为步入本书后面知识的学习打下基础. 本章内容 搭建Java开发平台 编写第一段Java程序 使用IDE工具 Java的运行机制 技术解惑 遵循源文件命名规则 忽视系统文件的扩展名 环境变量的问

《Java 开发从入门到精通》—— 第1章 Java之印象 1.1 初步认识Java

第1章 Java之印象 Java 开发从入门到精通 究竟Java是什么呢?为什么让你在众多语言中选择并学习这门语言呢?本章将会为读者讲解这些疑惑.学完本章的内容,相信初学者会对Java有一个深刻的印象. 本章内容 初步认识Java 面向对象 技术解惑 卓越者的总结 对初学者的3条建议 理解Java的垃圾回收机制 1.1 初步认识Java    知识点讲解:光盘:视频\PPT讲解(知识点)\第1章\初步认识Java.mp4 纵观各大主流招聘媒体,总是会看到多条招聘Java程序员的广告.由此可以看出

《51单片机应用开发从入门到精通》——2.4 延时时间计算实例

2.4 延时时间计算实例 51单片机应用开发从入门到精通 在单片机的实时控制系统中,常常需要用到延时操作,所以,延时子程序往往是编写单片机程序中不可缺少的一部分.延时方法有硬件延时和软件延时,硬件延时将在后面有关章节中介绍,本节将介绍软件延时方法. 所谓软件延时,就是让计算机重复执行一些无具体任务的程序,利用执行程序的时间来达到延时的目的. 2.4.1 机器周期和指令周期 单片机读.写操作都需要消耗一定的时间,机器周期是指单片机完成一个基本操作所用的时间,如读操作.写操作等.当石英晶体为12MH

《C++ 开发从入门到精通》导读

前言 C++ 开发从入门到精通 从你开始学习编程的那一刻起,就注定了以后所要走的路:从编程学习者开始,依次经历实习生.程序员.软件工程师.架构师.CTO等职位的磨砺:当你站在职位顶峰的位置蓦然回首,会发现自己的成功并不是偶然,在程序员的成长之路上会有不断修改代码.寻找并解决Bug.不停测试程序和修改项目的经历:不可否认的是,只要你在自己的开发生涯中稳扎稳打,并且善于总结和学习,最终将会得到可喜的收获. 选择一本合适的书 对于一名想从事程序开发的初学者来说,究竟如何学习才能提高自己的开发技术呢?其