我有一个java.util.List绑定到JTable,如果我想使用
刷新表我得到了这个例外:
线程“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(); 但我得到了同样的问题。
感谢。
答案 0 :(得分:2)
1)此代码始终在EDT中完成,在GUI中刷新其他时刻
Runnable#Thread
内的错误方式,不使用invokeLater()
Runnable#Thread
包含在invokeLater()
2)你有两种方式
Runnable#Thread
内的相同方式,输出到GUI必须包含在invokeLater()
3)您将能够在后台任务中管理整个步骤,然后您可以实现Binding