betterbeansbinding

第一次用java swing写了套桌面程序,来自动化一些工作上的事情。有人问我为什么不用AIR,毕竟是比较熟悉的flash开发模式,我的理由是AS相关的文档处理类库不够丰富,可能这也是AIR的一个不太好的地方。

熟悉AIR和swing的人应该知道,AS这类动态语言在UI编程的效率方面比java好N多,比如bind非常实用和简便。可是java swing借助一些丰富的类库也能实现类似功能,比如这次要讲的betterbeansbinding,可以实现JList,JTable等swing组件和java beans的绑定,单向或双向的都行。

举例一段代码

jtb = SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, vec, wage_list);

BeanProperty<SJPerson, ?> sjp_name = BeanProperty.create("personName");
BeanProperty<SJPerson, ?> sjp_wage1 = BeanProperty.create("wage1");
BeanProperty<SJPerson, ?> sjp_wage2 = BeanProperty.create("wage2");

jtb.addColumnBinding(sjp_name).setColumnName("姓名").setEditable(false);
jtb.addColumnBinding(sjp_wage1).setColumnName("底薪").setColumnClass(Float.class);
jtb.addColumnBinding(sjp_wage2).setColumnName("技术津贴").setColumnClass(Float.class);
jtb.bind();

它的作用是将

  • Vector<SJPerson> vec
  • JTable wage_list

双向绑定,vec是一组beans,在JTable里显示一个row。

更多信息可搜索或者Google code

RELATED POSTS

Leave a Reply