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

Java 如何从JGoodies绑定中解除绑定(2.9.0),java,swing,jgoodies,Java,Swing,Jgoodies,我有一个罕见的用例,其中swing视图的寿命比相关的表示模型长:swing视图的寿命与应用程序的寿命一样长,每次在应用程序中启动新的“运行”时,表示模型都会被替换 表示模型是groovy bean: @Bindable static class MyPresentationModel{ String myText = 'default-text' } swing视图是一个JTextField,使用JGoodies BeanAdapter绑定: JTextField myTextField

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

表示模型是groovy bean:

@Bindable
static class MyPresentationModel{
   String myText = 'default-text'
}
swing视图是一个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属性ChangeListener和JGoodies文档Listener。有没有一个很好的方法去除这些?还是我自己动手

据我所知,唯一的办法就是打电话

Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))
每次使用新PresentationModel中的新bean适配器时,都会执行上述语句


您无法解除绑定,必须使用新的PresentationModel刷新绑定

假设您有BeanAdapter,我使用
BeanAdapter.release()
使
BeanAdapter
实例删除所有注册到bean adapter的
PropertyChangeListeners
的成功率有限。但正如我所说,成功是有限的,这在很大程度上取决于bean、bean适配器和ui组件是如何连接在一起的。
Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))