JavaBeans 程序开辟从入门到精通教程3[Java编程]
本文“JavaBeans 程序开辟从入门到精通教程3[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
JavaBeans用户化
JavaBeans开辟者可以给一个Beans增添用户化器(Customizer)、属性编辑器(PropertyEditor)和BeansInfo接口来描写一个Beans的内容,Beans的利用者可在构造环境中通过与Beans附带在一同的这些信息来用户化Beans的外观和应做的行动.一个Beans没必要都有BeansCustomizer、PrpertyEditor和BeansInfo,按照实际情形,这些是可选的,当有些Beans较复杂时,就要供应这些信息,以Wizard的方法使Beans的利用者可以用户化一个Beans.有些简单的Beans大概这些信息都没有,则构造工具可以利用自带的透视装配,透视出Beans的内容,并把信息显示到尺度的属性表或事件表中供利用者用户化Beans,前几节提到的Beans的属性、办法和事件名要以一定的格局命名,主要的作用就是供开辟工具对Beans举行透视.当然也是给程序员在手写程序中利用Beans供应便利,使他能观其名、知其意.
用户化器接口(Customizer Interface)
当一个Beans有了自己的用户化器时,在构造工具内便可展示出自己的属性表.在定义用户化器时必必要实现java.Beanss.Customizer接口.比方,下面是一个"按钮"Beans的用户化一器:
public class OurButtonCustomizer
extends Panel implements Customizer {
... ...
/*当实现象OurButtonCustomizer这样的通例属性表时,
一定要在此中实现addProperChangeListener
和removePropertyChangeListener,这样,
构造工具可用这些功效代码为属性事件增添监听者.*/
... ...
private PropertyChangeSupport changes=new PropertyChangeSupport(this);
public void addPropertyChangeListener(PropertyChangeListener l) {
changes.addPropertyChangeListener(l);
public void removePropertyChangeListener(PropertyChangeListener l) {
changes.removePropertyChangeListener(l);
}
... ...
属性编辑器接口(PropertyEditor Interface)
一个JavaBeans可供应PropertyEditor类,为指定的属性成立一个编辑器.这个类必须担当自java.Beanss.PropertyEditorSupport类.构造工具与手写代码的程序员不直接利用这个类,而是在下一小节的BeansInfo中实例化并调用这个类.例:
public class MoleculeNameEditor extends java.Beanss.PropertyEditorSupport {
public String[] getTags() {
String resule[]={
"HyaluronicAcid","Benzene","buckmisterfullerine",
"cyclohexane","ethane","water"};
return resule;}
}
上例中是为Tags属性成立了属性编辑器,在构造工具内,可从下拉表格中挑选MoleculeName的属性应是"HyaluronicAid"或是"water".
BeansInfo接口
每个Beans类也大概有与之相关的BeansInfo类,在此中描写了这个Beans在构造工具内呈现时的外观.BeansInfo中可定义属性、办法、事件,显示它们的名称,供应简单的帮忙阐明. 比方:
public class MoleculeBeansInfo extends SimpleBeansInfo {
public PropertyDescriptor[] getPropertyDescriptors() {
try {
PropertyDescriptor pd=new PropertyDescriptor("moleculeName",Molecule.class);
/*通过pd引用了上一节的MoleculeNameEditor类,获得并返回moleculeName属性*/
pd.setPropertyEditorClass(MoleculeNameEditor.class);
PropertyDescriptor result[]={pd};
return result;
} catch(Exception ex) {
System.err.println("MoleculeBeansInfo: unexpected exeption: "+ex);
return null;
}
}
}
JavaBeans长期化
当一个JavaBeans在构造工具内被用户化,并与别的Beans成立衔接之后,它的全部状况都该当可被保存,下一次被load进构造工具内或在运行时,就该当是上一次改正完的信息.为了能做到这一点,要把Beans的某些字段的信息保存下来,在定义Beans时要使它实现java.io.Serializable接口.比方:
public class Button
implements java.io.Serializable {
}
实现了序列化接口的Beans中字段的信息将被自动保存.若不想保存某些字段的信息则可在这些字段前冠以transient或static关键字,transient和static变量的信息是不可被保存的.普通,一个Beans全部公开出来的属性都该当是被保存的,也可有挑选地保存内部状况. Beans开辟者在改正软件时,可以增添字段,移走对别的类的引用,改变一个字段的private/protected/public状况,这些都不影响类的存储构造关系.但是,当从类中删除一个字段,改变一个变量在类体系中的位置,把某个字段改成transient/static,或本来是transient/static,现改成别的特点时,都将惹起存储关系的改变.
JavaBeans的存储格局
JavaBeans组件被计划出来后,普通是以扩大名为jar的Zip格局文件存储,在jar中包含与JavaBeans有关的信息,并以MANIFEST文件指定此中的哪些类是JavaBeans.以jar文件存储的JavaBeans在网络中传送时极大地削减了数据的传输数目,并把JavaBeans运行时所需求的一些资源捆绑在一同,本章主要阐述了JavaBeans的一些内部特点及其通例计划办法,参考的是JavaBeans标准1.0A版本.随着世界各大ISV对JavaBeans越来越多的支持,标准在一些细节上还在不断演变,但基本框架不会再有大的变更.
以上是“JavaBeans 程序开辟从入门到精通教程3[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |