JavaBeans 程序开辟从入门到精通教程2[Java编程]
本文“JavaBeans 程序开辟从入门到精通教程2[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
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对象在自己的类中举行定义.
以上是“JavaBeans 程序开辟从入门到精通教程2[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |