java
  • swing
  • jgoodies
  • 2013-05-31 8 views 0 likes 
    0

    스윙 뷰가 관련 프리젠 테이션 모델보다 오래 사는 드문 유스 케이스가 있습니다. 스윙 뷰는 응용 프로그램이 살아있는 한 오래 유지되지만, 프레젠테이션 모델은 응용 프로그램에서 새로운 "실행"이 시작될 때마다 대체됩니다.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를 제거합니다. 그 (것)들을 제거하는 좋은 방법 있는가? 아니면 나 자신을 해킹 했나?

    답변

    0

    는 유일한 방법은 내가 아는 한

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

    새로운 PresentationModel에서 새로운 빈 어댑터 위의 문 매번 호출하는 것입니다.

    당신은 바인딩 바인딩을 해제 할 수 없습니다, 당신은 당신이 BeanAdapter있어 가정 새로운 PresentationModel

    +0

    바인딩을 새로 고쳐야 할 것이다, 나는 원인이'beanAdapter.release()'사용 제한적인 성공을 했어' BeanAdapter' 인스턴스를 사용하여 Bean 어댑터에 등록 된 모든 PropertyChangeListeners를 삭제합니다. 하지만 제가 말했듯이, 성공은 제한적이었습니다. 빈, 빈 어댑터 및 UI 구성 요소가 함께 연결되는 방식에 크게 의존합니다. – tones

     관련 문제

    • 관련 문제 없음^_^