Binding java data to gui as in c #

I wonder if it is possible to do data binding in java, how can we do this in C #? I google a lot, but there are no answers for me.
I want to bind, for example, a collection to a Jtable, and I want the JTable to be updated when some elements in the collection are added, deleted, or changed.

Thanks in advance!

+5
source share
4 answers

after research it turned out that there is nothing better than using custom models. In this blog you can find only perfect table models.

0
source

Yes, there is Java Beans Binding.

Take a look at:

JTable, , :

ObservableList<Employee> employees =
    ObservableCollections.observableList(
    new ArrayList<Employee>());

Beans : Java .

+2

java gui , Java FX 2 .
Swing ( JTable), , , .

+1

( , , - ) , , , BBB, , :

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 my experience, learning is proportional, how damn complicated it is, because it is ridiculously easy to implement after learning it. I know the documentation is small, but taking a look at 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 , and some self-learning examples saved me from a ton of wasted hours. Besides BBB, there are also JGoodies Bindings, which I personally have not tried.

0
source

All Articles