(Sto rispondendo a questo come una risposta completa e non un commento dato che c'è del codice incluso) Forse sono in ritardo, ma hai chiesto un piccolo esempio usando BBB quindi ecco un piccolo pezzo di codice che potresti trovare utili:
public static final Property<PatientModel, Long> PATIENT_MODEL_PATIENT_ID_PROPERTY_OBJECT =
BeanProperty.create(Patient.PATIENT_ID_PROPERTY);
public static final Property<PatientModel, String> PATIENT_MODEL_FIRST_NAME_PROPERTY_OBJECT =
BeanProperty.create(Patient.FIRST_NAME_PROPERTY);
public static final Property<PatientModel, String> PATIENT_MODEL_MIDDLE_NAME_PROPERTY_OBJECT =
BeanProperty.create(Patient.MIDDLE_NAME_PROPERTY);
public static final Property<PatientModel, String> PATIENT_MODEL_SURNAME_PROPERTY_OBJECT =
BeanProperty.create(Patient.SURNAME_PROPERTY);
public static final Property<PatientModel, String> PATIENT_MODEL_SECOND_SURNAME_PROPERTY_OBJECT =
BeanProperty.create(Patient.SECOND_SURNAME_PROPERTY);
public static final Property<PatientModel, Sex> PATIENT_MODEL_SEX_PROPERTY_OBJECT =
BeanProperty.create(Patient.SEX_PROPERTY);
public static final Property<PatientModel, String> PATIENT_MODEL_BIRTH_PLACE_PROPERTY_OBJECT =
BeanProperty.create(Patient.BIRTH_PLACE_PROPERTY);
public static final Property<PatientModel, Calendrical> PATIENT_MODEL_BIRTH_DATE_PROPERTY_OBJECT =
BeanProperty.create(Patient.BIRTH_DATE_PROPERTY);
public static final Property<PatientModel, Period> PATIENT_MODEL_AGE_PROPERTY_OBJECT =
BeanProperty.create(Patient.AGE_PROPERTY);
(...)
private ObservableList<PatientModel> model;
private JTable selectionTable;
(...)
JTableBinding<PatientModel, List<PatientModel>, JTable> selectionTableBinding
= SwingBindings.createJTableBinding(UpdateStrategy.READ_WRITE, this.model, this.selectionTable);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_PATIENT_ID_PROPERTY_OBJECT);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_FIRST_NAME_PROPERTY_OBJECT);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_SURNAME_PROPERTY_OBJECT);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_SEX_PROPERTY_OBJECT);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_BIRTH_PLACE_PROPERTY_OBJECT);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_BIRTH_DATE_PROPERTY_OBJECT);
selectionTableBinding.addColumnBinding(PATIENT_MODEL_AGE_PROPERTY_OBJECT);
In base alla mia esperienza, l'apprendimento è proporzionalmente dannatamente duro e diventa incredibilmente facile implementarlo una volta appreso. So che la documentazione non è eccezionale, ma dare un'occhiata allo http://www.jarvana.com/jarvana/view/it/tidalwave/betterbeansbinding/betterbeansbinding-swingbinding/1.3.0/betterbeansbinding-swingbinding-1.3.0-javadoc.jar!/org/jdesktop/swingbinding/JTableBinding.html e fare alcuni esempi di auto insegnamento mi ha risparmiato da tonnellate di ore sprecate. Oltre a BBB ci sono anche JGoodies Bindings che personalmente non ho provato.
fonte
2013-02-27 18:29:43
sì, questo è davvero un enorme svantaggio di java, se si scrive un'applicazione desktop swing. La migliore lib per il data binding è BBB (BetterBeanBinding), ma non ci sono esempi completi di come possiamo usarlo. Sono davvero frustrato e deluso da Java. –
Sei legato allo swing? – assylias
in realtà, non sono legato ad esso, ma non ho alcuna familiarità con JavaFX e penso che la costruzione dell'interfaccia utente su JavaFX non sia così semplice come su Swing. Se sbaglio, per favore, correggimi. E a proposito, c'è qualche costruttore di UI JavaFX? –