快速业务通道

扩展Visual Editor的控件和属性 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04
l(TextItemModel model){      this.model = model;      titleLabel.setText(model.getTitle());      this.pack();    }

通过名为 beep 的布尔变量定义是否需要 beep 提醒。

添加 Verify Listener 检测用户输入是否超出最大输入字符的限制,该部分代码如下:

扩展Visual Editor的控件和属性(3)

时间:2011-03-06 IBM 王 浩

清单 2: 判断字符长度越界

contentText.addVerifyListener(new VerifyListener(){      public void verifyText(VerifyEvent e) {        String startStr = ((Text) e.widget).getText().substring(0, e.start);        String endStr = ((Text) e.widget).getText().substring(e.end);        String str = startStr + e.text + endStr;        if ((model != null) && (str.length() > model.getMaxLength())) {          e.doit = false;          if (beep)            Display.getCurrent().beep();        }      }    });

BeanInfo 实现

BeanInfo 类实现了 java.beans.BeanInfo 接口,它被 Visual Editor 用来描述控件在属性视图中的行为。因为 BeanInfo 类仅在设计用户界面时被用到,因此运行时是不需要该类的。Visual Editor 定义了一些规则,用以将 BeanInfo 类与其描述的控件相联系起来,正如下文所述。

控件可以继承其父类或其他控件的属性行为,由 java.beans.Introspector 来获取相应控件的 BeanInfo 描述,并作为 getAdditionalBeanInfo() 方法的返回值,就可以将其他控件的属性行为继承至本控件,如下面代码所示:

清单 3:继承控件的属性行为

public BeanInfo[] getAdditionalBeanInfo() {      try{        return new BeanInfo[]{Introspector.getBeanInfo(Control.class)};      } catch (IntrospectionException e){        return new BeanInfo[0];      }    }

java.beans.PropertyDescriptor 用以描述控件的属性,该属性应该在控件中存在一对公开的(public 的) Get 方法和 Set 方法进行访问。例如,setName(String name) 和 getName() 方法,对应的 property 的名字就是“name”,注意第一个字母是小写。对 PropertyDescriptor 还有很多可选的设定,比如设定该 property 是否显示,在属性视图中显示的名称以及该属性的描述等。

以本控件的 Beep 属性为例,该属性是一个布尔型属性,对应文本框是否有超出输入长度的声音提示。描述该属性的 PropertyDescriptor 如下:

清单4:描述 Beep 属性的 PropertyDescriptor

public PropertyDescriptor getBeepPropertyDescriptor(){      PropertyDescriptor pd;      try {        pd = new PropertyDescriptor("beep", TextItem.class);        pd.setDisplayName("TextItem notifier");        pd.setShortDescription("Beep when the length exceed specified.");        pd.setValue("enumerationValues", new Object[] {        "No Beep", Boolean.FALSE, "developerworks.ve.example.textitem.TextItem.NO_BEEP",        "Beep", Boolean.TRUE, "developerworks.ve.example.textitem.TextItem.BEEP"});      } catch (IntrospectionException e) {        pd = null;      }      return pd;    }

扩展Visual Editor的控件和属性(4)

时间:2011-03-06 IBM 王 浩

PropertyDescriptor 的构造函数传入的参数分别

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号