스윙 뷰가 관련 프리젠 테이션 모델보다 오래 사는 드문 유스 케이스가 있습니다. 스윙 뷰는 응용 프로그램이 살아있는 한 오래 유지되지만, 프레젠테이션 모델은 응용 프로그램에서 새로운 "실행"이 시작될 때마다 대체됩니다.JGoodies-Binding (2.9.0)에서 바인딩 바인딩을 해제하는 방법
@Bindable
static class MyPresentationModel{
String myText = 'default-text'
}
스윙 뷰는 JGoodies BeanAdapter를 사용하여 바인딩의 JTextField입니다 :
JTextField myTextField = new JTextField()
MyPresentationModel pm = new MyPresentationModel()
BeanAdapter<MyPresentationModel> beanAdapter = new BeanAdapter<MyPresentationModel>(pm, true)
Bindings.bind(myTextField , beanAdapter.getValueModel('myText'))
어떻게 내가 때어 프리젠 테이션 모델
프레젠테이션 모델은 그루비 콩입니다 나중에 JTextField에서?
내가 JGoodies 바인딩의 API에서 발견되는 방향으로있는 유일한 방법은
beanAdapter.setBean(null)
이다 그러나 이것은하지 않습니다 - 물론 - JGoodies-의 PropertyChangeListener와의 JTextField에서 JGoodies-의 DocumentListener를 제거합니다. 그 (것)들을 제거하는 좋은 방법 있는가? 아니면 나 자신을 해킹 했나?
바인딩을 새로 고쳐야 할 것이다, 나는 원인이'beanAdapter.release()'사용 제한적인 성공을 했어' BeanAdapter' 인스턴스를 사용하여 Bean 어댑터에 등록 된 모든 PropertyChangeListeners를 삭제합니다. 하지만 제가 말했듯이, 성공은 제한적이었습니다. 빈, 빈 어댑터 및 UI 구성 요소가 함께 연결되는 방식에 크게 의존합니다. – tones