2012-09-14 2 views
7

javafx 등록 정보는 바인딩 모델이 강력한 통지 업데이트 메커니즘을 구현하기 때문에 데이터 모델을 javafx GUI에 연결할 수있는 좋은 방법입니다.
데이터 모델에서 javafx 등록 정보 및 바인딩 사용

속성 및 바인딩은 엄격하게 GUI와 관련이 없으며 javabeans의 확장입니다.

패키지 javafx.beans.property.StringProperty 및 일반적으로 javafx.*에 의존하지 않고 응용 프로그램 모델 클래스에서 사용하기를 원합니다. 즉

: (갱신)
나는 두 개의 모듈로 응용 프로그램을 분할해야 할 수 있습니다.
하나의 모듈에는 데이터 (모델 클래스, MVC 말하기)를 조작하는 클래스 만 있어야합니다.
두 번째 모듈에는 모든 그래픽 GUI 항목 (javafx)이 포함됩니다.

내 데이터 클래스에서 javafx 바인딩을 사용하는 경우 가져 오기 javafx.beans.anything;을 소개합니다. 가장 좋은 점은 바인딩이 java. * 또는 javax. *의 일부 였기 때문에 "GUI 라이브러리"를 참조하지 않았을 것입니다. 코어 데이터 라이브러리). javafx가 stardard 릴리스에 포함되어이 prolbem을 완화한다는 사실은 까다로운 해결책으로 보입니다. Afterall 나는 스윙 "유틸리티"클래스에 의존하는 웹 애플리케이션을 보았다고 생각합니다.

사용 가능한 옵션이 있습니까?

listeneres를 사용하여 일반 javabeans 속성을 만들고 fx 속성에 연결하는 데 필요한 노력을 평가하고 있습니다.

+1

javafx.beans 패키지에 의존하지 않고 javafx 속성을 사용하면 무엇을 의미하는지 명확히 할 수 있습니까? 당신은 그 패키지에서 그들을 사용하거나 자신의 패키지를 써주세요. 그리고 후자의 옵션은 JavaFX가 7u4 이후 Java의 일부이기 때문에 그다지 유용하지 않습니다. –

+0

'다른 말로'를 추가했습니다. – AgostinoX

+1

Sergey가 방금 당신에게 올바른 힌트를주었습니다. 속성을 사용하고 바인딩을 사용하려는 경우 모델에서이 속성을 사용하십시오! 어쨌든, 7u4 이후 JDK의 모든 부분입니다. – pmoule

답변

1

JavaFX 객체를 POJO (Plain Old Java Object) techinque에 바인딩하면 도움이 될 것입니다. http://ugate.wordpress.com/2012/06/06/javafx-pojo-bindings/

두 단어에서 당신은 POJO 객체에 액세스하기 위해 다음 방법을 사용할 수 있습니다 :

이 자습서의 다음 세트를 참조

Person person = new Person(); 
    PathProperty prop = new PathProperty(
     person, "address.streetName", String.class); 
    Bindings.bindBidirectional(prop, myTextField.textProperty()); 
    prop.set("123 1st Street"); 
1

세르게이 말했듯이 다음 jfxtras 라이브러리가 BeanPathAdapter의 API와 솔루션입니다 : https://github.com/JFXtras/jfxtras-labs/blob/2.2/src/main/java/jfxtras/labs/scene/control/BeanPathAdapter.java

Granite Data Services를 사용하는 경우 대안이 있습니다. javafx 속성을 생성하도록 사용자 정의 할 수있는 클래스 생성기가 있습니다. 이것은 javafx 애플리케이션의 서버 측 통합에 중점을 둔 아름다운 프레임 워크입니다. http://java.dzone.com/articles/data-management-javafx-and