Spec-Zone.ru › OpenJavaFX 11
Модуль javafx.controls
Пакет javafx.scene.control.cell

Класс PropertyValueFactory<S,​T>

  • java.lang.Object
    • javafx.scene.control.cell.PropertyValueFactory<S,​T>
  • Типы параметров:
    S - Тип класса, содержащегося в списке TableView.items.
    T - Тип класса, содержащегося в ячейках TableColumn.
    Все реализуемые интерфейсы:
    Callback<TableColumn.CellDataFeatures<S,​T>,​ObservableValue<T>>
    public class PropertyValueFactory<S,​T>
    extends Object
    implements Callback<TableColumn.CellDataFeatures<S,​T>,​ObservableValue<T>>
    Удобная реализация интерфейса Callback, специально разработанная для использования в TableColumn cell value factory. Пример использования этого класса:
    
     TableColumn<Person,String> firstNameCol = new TableColumn<Person,String>("First Name");
     firstNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("firstName"));
     

    В этом примере, Person — это тип класса элементов списка TableView items. Класс Person должен быть объявлен public. PropertyValueFactory использует аргумент конструктора, "firstName", чтобы предположить, что Person имеет public метод firstNameProperty без формальных параметров и типом возвращаемого значения ObservableValue<String>.

    Если такой метод существует, он вызывается, и дополнительно предполагается, что возвращает экземпляр Property<String>. Возвращаемое значение используется для заполнения TableCell. Кроме того, TableView добавляет наблюдателя к возвращаемому значению, таким образом, любые события изменения будут наблюдаться TableView, что приведет к немедленному обновлению ячейки.

    Если такой метод не существует, то PropertyValueFactory предполагает, что Person имеет public метод getFirstName или isFirstName без формальных параметров и типом возвращаемого значения String. Если такой метод существует, он вызывается, и его возвращаемое значение оборачивается в ReadOnlyObjectWrapper и возвращается в TableCell. В этом случае TableCell не сможет наблюдать за изменениями свойства, в отличие от первого подхода выше.

    Для справки (и как отмечено в документации TableColumn TableColumn.cellValueFactoryProperty() фабрика значения ячейки), развернутый код выше выглядит следующим образом:

    
     TableColumn<Person,String> firstNameCol = new TableColumn<Person,String>("First Name");
     firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() {
         public ObservableValue<String> call(CellDataFeatures<Person, String> p) {
             // p.getValue() returns the Person instance for a particular TableView row
             return p.getValue().firstNameProperty();
         }
      });
     }
     

    Развертывание приложения как модуля

    Если ссылаемый класс находится в именованном модуле, то он должен быть доступен рефлексивно для javafx.base модуля. Класс доступен рефлексивно, если модуль opens содержащий пакет, по крайней мере, для javafx.base модуля. В противном случае метод call(TableColumn.CellDataFeatures) выведет предупреждение и вернёт null.

    Например, если класс Person находится в пакете com.foo в модуле foo.app, module-info.java может выглядеть так:

    module foo.app {
        opens com.foo to javafx.base;
    }

    В качестве альтернативы, класс доступен рефлексивно, если модуль exports содержащий пакет безусловно.

    С:
    JavaFX 2.0
    См. также:
    TableColumn, TableView, TableCell, TreeItemPropertyValueFactory, MapValueFactory
  • Краткое описание конструкторов

    Конструкторы
    Конструктор Описание
    PropertyValueFactory​(String property)
    Создаёт фабрику PropertyValueFactory по умолчанию для извлечения значения из элемента строки TableView рефлексивно, используя заданное имя свойства.
  • Краткое описание методов

    Все методыМетоды классаКонкретные методы
    Модификатор и тип Метод Описание
    ObservableValue<T> call​(TableColumn.CellDataFeatures<S,​T> param)
    Метод call вызывается при необходимости и получает один аргумент типа P, с требованием возврата объекта типа R.
    String getProperty()
    Возвращает имя свойства, предоставленное в конструкторе.
    • Методы, унаследованные от класса java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Подробное описание конструкторов

    • PropertyValueFactory

      public PropertyValueFactory​(String property)
      Создаёт фабрику PropertyValueFactory по умолчанию для извлечения значения из элемента строки TableView рефлексивно, используя заданное имя свойства.
      Параметры:
      property - Имя свойства, с помощью которого пытаться рефлексивно извлечь соответствующее значение в заданном объекте.
  • Подробное описание методов

    • call

      public ObservableValue<T> call​(TableColumn.CellDataFeatures<S,​T> param)
      Метод call вызывается при необходимости и получает один аргумент типа P, с требованием возврата объекта типа R.
      Определено в:
      call в интерфейсе Callback<S,​T>
      Параметры:
      param - Единственный аргумент, на основе которого должно быть определено возвращаемое значение.
      Возвращает:
      Объект типа R, который может быть определён на основе предоставленного значения параметра.
    • getProperty

      public final String getProperty()
      Возвращает имя свойства, предоставленное в конструкторе.
      Возвращает:
      имя свойства, предоставленное в конструкторе

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API