当前位置:编程学习 > JAVA >>

NetBeans jTable绑定的刷新问题

关于NetBeans 绑定的问题 Binding JTableBinding 

    NetBeans我个人认为是一个不错的工具,它虽然没有Eclipse这么多插件及扩展能力,但它更偏向于成熟的IDE编辑工具,方便快捷的代码生成,稳定的即见即得功能,方便集成常用的框架模式等等。
不讲太多啦,不然让人感觉做广告。

   今天主要讲一个困扰我多时的问题,就是NetBeans 的 绑定(binding)数据能力,此binding可以方便快捷开发桌面式的Swing程式,可以免除很多操作控件时用到的数据能力,加发开发速度。一句话,就是合我懒人使用的能力。

   在NetBeans如何绑定数据,我就不多讲了,因为官方及网上都有很多教材讲到。
   今天集中讨论一下关于用NetBeans绑定数据后,由于代码是自动生成在initComponents中,且Binging的变量定义都在内部,没法修改或者调用。拿JTalbe绑定list做例子,如果你jTable 是绑定在一个List<T>中,启动程式时是可以装裁了数据,但如果我自定义刷新数据List时,就没办法更新JTable.我在网上查过很多例子没有讲如何做,NetBeans的官方资料也没有。曾经网上有人把生成的代码整段抄下来做一个方法,当要刷新时重新把所有的参数的绑定一次。这样是可以,但效能很不好,代码量也很大,造就一个不好的编辑环境。
    后来分析NetBenas的实例中绑定的代码,发现有三个方法可以做刷新绑定值。
    首先定义一个List<T>
private List<T> list;

public List<T> setList(List<T> list){
     this.list=list
}

方法一:
    在setter数据时增加firePropertyChange(String str,Object oldValue,Objec newValue).这个方法是通知整个BindingGroup数据被更新,要求所有在BindingGroup内的控件刷新数据。

方法二:
    如方法一的效果是一样的,就要利用NetBeans中自动生成代码中的一个缺口(其实NetBeans特意留这个参数给用户调用),
是利用BindingGroup.getBindins取得Binding的List后,再列表式进行upbind()后再bind();

方法三:
    当要精控制每个组件的刷新时,此时要留意在控件中设定绑定值时要在高级中输入一个定制标识名称,再利用JTableBinding a=(JTableBinding) bindingGroup.getBinding("定制的名称");
a.unbind();
a.bind();

方法二和方法三放在那个地方执行就要看用户自行的设计了,我一般放在变量的setter中,这样当更新数据后就要求控件刷新数据了。

希望大家受用。


        
      

--------------------编程问答-------------------- 为什么不用wbpro呢,SWT开发不更好吗 --------------------编程问答-------------------- 学习了! --------------------编程问答-------------------- 大侠。这个到底是行不行的啊 --------------------编程问答-------------------- 不会用 怎么用  给个示例代码呀。。。。 --------------------编程问答-------------------- 多谢了,真是救我于水火啊。话说netbeans的资料真不多,教程来来回回就那么两篇,还都是老版本的。帮助也很粗略。看老外的论坛上也是netbeans的问题问了一遍又一遍。怪不得那么多人宁可自己写也不用ide。不过自己造轮子还是挺浪费的,有这功夫好好把问题研究清楚帮助后来者似乎效率更高。总之实在是感激不尽。
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,