我有一个罕见的用例,其中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。有没有一个很好的方法来删除它们?或者我自己破解了吗?
答案 0 :(得分:0)
据我所知,唯一的办法是致电
Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))
每次使用来自新的PresentationModel的新bean适配器以上语句。
你无法取消绑定绑定,你必须使用新的PresentationModel刷新绑定