如何解除绑定JGoodies-Binding(2.9.0)

时间:2013-05-31 06:55:47

标签: java swing jgoodies

我有一个罕见的用例,其中swing-view的寿命比相关的表示模型更长:只要应用程序存在,swing-view就会存在,每次新的“run”时都会替换表示模型从应用程序开始。

表示模型是一个常规bean:

@Bindable
static class MyPresentationModel{
   String myText = 'default-text'
}

swing-view是一个JTextField,使用JGoodies BeanAdapter进行绑定:

JTextField myTextField = new JTextField()
MyPresentationModel pm = new MyPresentationModel()
BeanAdapter<MyPresentationModel> beanAdapter = new BeanAdapter<MyPresentationModel>(pm, true)
Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))

之后如何从JTextField中取消绑定演示模型?

我在JGoodies-Binding API中找到的唯一方向就是

beanAdapter.setBean(null)

但这不是 - 当然 - 从JTextField中删除JGoodies-PropertyChangeListener和JGoodies-DocumentListener。有没有一个很好的方法来删除它们?或者我自己破解了吗?

1 个答案:

答案 0 :(得分:0)

据我所知,唯一的办法是致电

Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))
每次使用来自新的PresentationModel的新bean适配器

以上语句。

你无法取消绑定绑定,你必须使用新的PresentationModel刷新绑定