我有一个罕见的用例,其中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