|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。在一个Bean中设置联系关系属性的基础步骤以下:
调进java.beans包,以便会见该包中所界说的一些便利类。MyButton中的import语句的利用办法以下:
importjava.beans.*;
实例化java.beans.PropertyChangeSupport类。
privatePropertyChangeSupportchanges=new
PropertyChangeSupport(this);
MyButton创立了一个名为changes的新对象,它是PropertyChangeSupport类的实例,变量changes保留的是监听对象的汇合,一旦联系关系属性产生变更,就会关照到这些对象。该变量界说了两个撑持的办法:addPropertyChangeListener和removePropertyChangeListener,这两个办法供应了大众的接口,可让感乐趣的监听者对MyButton举行注册。
完成由PropertyChangeSupport类界说的办法。
PropertyChangeSupport类包括了增加和移往监听对象的办法,特别是PropertyChangeListener对象。AddPropertyChangeListener办法增加一个新的监听对象到表中,而removePropertyChangeListener办法则从表中移往一个监听对象。PropertyChangeSupport类也包括第三个办法:firePropertyChange,该办法把PropertyChangeEvent对象发送给感乐趣的监听者。MyButton包括的完成增加和移往监听者办法的代码以下:
注重:参数l暗示propertychangelistenerBean,该Bean能够作为注册大概移往其乐趣。
publicvoidaddPropertyChangeListener(
PropertyChangeListenerl){
changes.addPropertyChangeListener(l);
}publicvoidremovePropertyChangeListener(
PropertyChangeListenerl){
changes.removePropertyChangeListener(l);
}
修正Bean的联系关系属性的setter办法。
关于那些盘算成为联系关系属性的属性,能够修正Bean的setter办法,以便包括当属性值变更时就发送事务的代码。MyButton在每个设置新属性值的办法内挪用firePropertyChange办法。比方,当一个使用程序大概用户改动了按钮的字体时,这个举措就实行了MyButton.setFont办法。由于firePropertyChange办法关于变更了的属性的新值和旧值都必要,setFont办法起首经由过程挪用getFont办法取得旧值,以后设置新值,改动了本来的值以后,再挪用changes.firePropertyChange办法关照感乐趣的监听者。changes.firePropertyChange办法传送了三个参数:产生变更的属性名,属性的旧值,该属性的新值。
publicvoidsetFont(Fontf){
Fontold=getFont();
super.setFont(f);
sizeToFit();
changes.firePropertyChange(
"font",old,f);
}
关于firePropertyChange办法来讲,它完成了哪些事变?该办法把它的三个参数绑定到一个PropertyChangeEvent对象中。以后把PropertyChangeEvent对象作为参数,挪用propertyChange办法。把PropertyChangeEvent对象传送给每一个注册过的监听者。记着:propertyChange把属性的旧值和新值作为对象值看待。这一点很主要,假如你的属性值是个复杂范例,你就必需对该范例从头界说为对象,比方,一个复杂的整数范例,在挪用firePropertyChange之前,就要转化为java.lang.Integer。
记着:关于联系关系属性来讲,起首是属性值产生变更,以后才发送属性变更事务。
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。 |
|