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



我有一个罕见的用例,其中swing视图的寿命比相关的表示模型更长:swing视图的寿命与应用程序的寿命一样长,每次在应用程序中启动新的"运行"时,表示模型都会被替换。

表示模型是groovy 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 - propertychangellistener和JGoodies-DocumentListener。有什么好办法能把它们去掉吗?还是我自己去破解?

据我所知,唯一的方法是调用

Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))

每次使用来自新PresentationModel的新bean适配器执行上述语句。

您不能取消绑定,您必须使用新的PresentationModel

刷新绑定。

相关内容

  • 没有找到相关文章

最新更新