JavaFX Отображение свойств в элементах управления

parszab спросил: 03 февраля 2018 в 01:09 в: java

Я работаю над учебниками JavaFX от Oracle. После выполнения Swing в течение многих лет (давным-давно) я очарован новыми умными функциями, в том числе. свойства. Я был удивлен, увидев, что эти примеры (например: https://docs.oracle.com/javafx/2/ui_controls/table-view.htm) не используют их так, как я считаю "правильными".

В примере создается класс Person со свойствами как поля:

public static class Person {
    private final SimpleStringProperty firstName;
    ...

Но получатели не для свойств, а для своих значения

    public String getFirstName() {
        return firstName.get();
    }

, поэтому, когда он связывает их с TableCell s в столбцах, он переносит их в новое свойство:

    emailCol.setCellValueFactory(
            new PropertyValueFactory<Person, String>("firstName"));

Это кажется запутанным для меня и упускает реальное преимущество распространения событий, не просто используя это:

    firstNameCol.setCellValueFactory( celldata -> 
        celldata.getValue().firstNameProperty());

Мой вопрос: есть ли причина, почему этот пример не работает 't expose и использовать свойства компонента в элементе управления напрямую? Я что-то упустил здесь?

NB: Я действительно изменил код таким образом, и этот пример работал намного приятнее: обновления в объекте Person другим элементом управления были немедленно распространены, w / o вызов table.refresh() например

0 ответов