快速业务通道

智能数据使Swing保持简单 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
是由于使用反射而带来的性能上的轻微降低。大多数 应用程序不会受这一性能下降影响,而大型或实时应用程序的开发人员应该牢记这一点。

清单 6. 使用 UniversalImmutableIData 的 createRow() 方法

protected Vector createRow(Bicycle bicycle) {   Vector vec = new Vector();    vec.add(new UniversalImmutableIData(bicycle, "modelName"));    vec.add(new UniversalImmutableIData(bicycle, "modelID"));    vec.add(new UniversalImmutableIData(bicycle, "manufacturer"));    vec.add(new UniversalImmutableIData(bicycle, "priceAndCost"));    vec.add(new UniversalImmutableIData(bicycle, "inventory"));   return vec; }

智能数据使Swing保持简单(7)

时间:2011-04-16 IBM Jonathan Simon

清单 7. 来自基于反射的 UniversalImmutableIData 的样本

protected String field = ... //the field name   protected Method accessorMethod = ... //the accessor method   protected Object source = ... //the DataObject   ...   protected void setMethods()   {    if (field == null || field.equals(""))     return;    //capitalize the first letter of the field, so you get getName,    //not getname...    String firstChar = field.substring(0,1).toUpperCase();    //remove first letter    String restOfField = field.substring(1);    //add together the string "get" + the capitalized first letter,    //plus the remaining    String fieldAccessor = "get" + firstChar + restOfField;    //cache the method object for future use    this.setAccessorMethod(fieldAccessor);   }   ...   protected void setAccessorMethod(String methodName)   {    try    {     accessorMethod = source.getClass().getMethod(methodName, null);    }    catch ( ... )    {     ...    }   }   ...   public Object getData()   {    try    {     return accessorMethod.invoke(source, null);    }    catch ( ... )    {     ...    }   }

智能数据使Swing保持简单(8)

时间:2011-04-16 IBM Jonathan Simon

可编辑智能数据的数据间接层(MutableIData)

通过增加一个 setData() 方法, MutableIData 继承了 ImmutableIData ,使之可修改 。 setData() 方法采用新数据值作为一个参数,并返回一个表示编辑是否成功的布尔值。通 常,有必要对 setData() 方法中的新数据值进行强制类型转换,以与 DataObject 中那个字 段高速缓存的数据类型相匹配。标准实现安全地测试对象类型,如果类类型不匹配,则返回 值为 false。

清单 8. “自行车制造商”的 MutableIData

public boolean setData(Object data)   {    if (!data instanceof String)      return false;    ((Bicycle)this.getSource()).setManufacturer((String)data);      return true;   }

一旦编写完所有的新 MutableIData 对象,则更新 getRow() 方法来实例化 MutableIData 实例而不是与其对应的 Immutable 实例。我发现,当字段明确是不可修改时 ,只生成 ImmutableIData 对象。否则,知道不会调用 setData() 方法,生成了 MutableIData 并且仅在只读表中使用它。

定制编辑器

既然已经能够修改数据了,就有了一个大的改变:编辑数据需要定制编辑器。如果使用缺 省编辑器,那么 JTable 将会检索编辑

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号