2012-09-14 19 views
7

Las propiedades de javafx son una excelente manera de conectar el modelo de datos a un gui javafx porque su modelo de enlace implementa un potente mecanismo de actualización de notificaciones.
uso de las propiedades de javafx y enlace en el modelo de datos

Las propiedades y los enlaces no están estrictamente relacionados con la interfaz gráfica de usuario, sino que son una extensión de JavaBeans.

Así que uno quisiera utilizarlos en las clases de modelo de aplicación sin introducir una dependencia en el paquete javafx.beans.property.StringProperty y en general desde javafx.*.

En otras palabras: (actualización)
puedo necesitar para dividir la aplicación en dos módulos.
Un módulo debe contener solo las clases que manipulan los datos (las clases de modelo, MVC hablando).
Un segundo módulo contendría todo el contenido gráfico de la interfaz gráfica de usuario, es decir javafx.

Si mis clases de datos usan javafx binding, introduciría una importación javafx.beans.anything; (lo mejor sería que las vinculaciones fueran parte de java. * O javax. *, Así que no haría referencia a una "biblioteca de GUI" en una biblioteca de datos básicos). El hecho de que javafx se incluya en las versiones stardard alivia esta prolbem, pero parece una solución difícil. Después de todo, creo que entorné una aplicación web que depende de alguna clase de "utilidad".

¿Hay alguna opción disponible?

Estoy evaluando el esfuerzo requerido para crear propiedades regulares de Javabeans con listeneres y vincularlas a propiedades fx.

+1

¿Puedes aclarar a qué te refieres con 'usar las propiedades de javafx sin depender de los paquetes de javafx.beans'? O los usa desde ese paquete o escribe los suyos. Y la última opción no es muy útil dado que JavaFX es parte de Java desde 7u4. –

+0

He agregado un 'en otras palabras'. – AgostinoX

+1

Sergey acaba de darle la pista correcta. Si desea utilizar propiedades y encuadernación, ¡Úselos en sus modelos! Todo es parte del JDK desde 7u4, de todos modos. – pmoule

Respuesta

1

La vinculación del objeto JavaFX a POJO (objeto antiguo de Java simple) techinque puede ayudarlo aquí.

Ver siguiente serie de tutoriales: http://ugate.wordpress.com/2012/06/06/javafx-pojo-bindings/

En dos palabras que se pueden utilizar junto manera de acceder a los objetos 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

Como dijo Sergey: la biblioteca jfxtras es una solución con la API BeanPathAdapter: https://github.com/JFXtras/jfxtras-labs/blob/2.2/src/main/java/jfxtras/labs/scene/control/BeanPathAdapter.java

Existe una alternativa si usa Granite Data Services: tiene un generador de clases que puede personalizar para generar las propiedades de javafx. Es un marco hermoso que se centra en la integración del lado del servidor de las aplicaciones javafx. http://java.dzone.com/articles/data-management-javafx-and

Cuestiones relacionadas