2011-11-13 2 views
1

현재 스윙을 사용하여 자바로 데스크탑 애플리케이션을 만들고 있습니다. GUI 컴포넌트와 데이터 객체의 상태를 동기화하기 위해 jdesktop.org에서 beansbinding 프레임 워크를 사용하고 있습니다. 그러나 프레임 워크에 문제가있어 GUI 구성 요소와 데이터 객체간에 상태 정보를 수동으로 전송해야합니다.자바 객체에 스윙 컴포넌트 바인딩하기

beansbinding 프레임 워크에 대한 대안이 있습니까? (NetBeans에서도 사용하고 있습니다.)? 권장할만한 전략이 있습니까 (예 : 바인딩을 전혀 사용하지 않는 대신 무엇을해야할까요?)? 경우

당신은 내가 beansbinding에 직면 할 어떤 문제가 있을까 :

  • 는 JTables (내가 행을 내 자신의 사용 또는 삭제할 수 없습니다)
  • 특정 속성에 액세스 할 수없는 나 안에 내 TableModel에 대체 가능한, selectedItem가 또는 selectedObject (적어도 consistenly JComboBox에 걸쳐, JList의 등)와 같은
  • 특정 속성 중 하나를 읽기 전용 또는 단지 내가 null 값에 대한 특수 값을 바인딩 할 수 있습니다
  • (selectedItem가 또는 selectedObject처럼) 쓸 수 있지만 나는 할 수 없다. r 사용자 정의 매핑 함수 또는 뭔가를 사용하여 목록의 숫자를 JComboBox의 문자열에 매핑하는 예제 (적절한 toString 메서드를 사용하여 특수 클래스를 만들 수 있음을 알고 있지만 이는 내 데이터 집합에 대한 특수 래퍼 객체를 만듭니다)
  • ...

답변

2

사용할 수 있지만, Beansbinding 죽은 - 그것은 지금까지 해당 버전 번호를 획득하고 많은 그 이후 변경되지 않아도 때 그것은 인위적으로 1.x의 상태로 밀렸다. 무엇이든 문제는 그들이 해결되지 않습니다 발견 - 당신이 특정 총알에 관해서 :-) 그것을 너 자신을 제외하고 :

  • 전반적인 아이디어는 TableModel에이-A이다 오브젝트의 목록을, 그 열은 속성에 바인딩 (콩 또는 EL). 일반적으로 ObservableList이며 이 수정을 지원합니다.
  • JComboBox는 건설 현장입니다. JList/JTable의 선택 바인딩이 사용 가능하고 일관성이 있습니다.
  • (단일) 선택을 쓰기 가능하게 만드는 것은별로 중요하지 않습니다 (인큐베이터의 JXTable 용 어댑터로 실험). 쓰기 전용 속성을 보지 못하셨습니까?
  • 모든 바인딩 프레임 워크로, 당신은 명백한 현재 대안 JGoodies 바인딩됩니다

(하지만 편집하는 역할을, 즉 BTW, 렌더링 관련되지 않은) 값 유형을 매핑 컨버터가 필요합니다. 얼마 동안은 보지 못했지만, 최근에 새 버전이 나왔다는 것을 알았습니다. 그래서 확실히 개발되어 사용되었습니다. 미래의 대안은 fx 바인딩 일 것입니다. 그것은 초기 단계에 있으며 친절한 영혼이 베어 본 (barebones) 주변에 유용한 프레임 워크를 만들기를 기다리고 있습니다.