不允许JTable绑定

时间:2011-12-05 18:20:15

标签: java swing binding jtable

我有一个java.util.List绑定到JTable,如果我想使用

刷新表
  1. bindingGroup.unbind();
  2. bindingGroup.bind();
  3. 我得到了这个例外:

    线程“Thread-8”中的异常java.lang.UnsupportedOperationException:无法在托管绑定上调用此方法

    相对于上面的第2行。

    以下更具体的代码:

        new Thread(
                new Runnable(){
                    public void run(){
                        fireProgressBar(true,"working...");
                        controller.doSmoething();
                        fireProgressBar(false,"");   
                        bindingGroup.unbind();
                        bindingGroup.bind();
                        jTable1.revalidate();                        
                    }
                }                
                ).start(); 
    

    fireProgressBar是我为jProgressBar激活编写的一个简单方法,此处没有任何内容涉及绑定。

    bindingGroup.bind()调用抛出上面的异常。

    我也尝试使用SwingUtilities.invokeLater而不是新的Thread(....)。start(); 但我得到了同样的问题。

    感谢。

1 个答案:

答案 0 :(得分:2)

1)此代码始终在EDT中完成,在GUI中刷新其他时刻

  • Runnable#Thread内的错误方式,不使用invokeLater()

  • Runnable#Thread包含在invokeLater()

  • 中的正确方法

2)你有两种方式

3)您将能够在后台任务中管理整个步骤,然后您可以实现Binding