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

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

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

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

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

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

    Для справки (и как отмечено в документации TreeTableColumn cell value factory), полная форма кода выше будет следующей:

    
     TreeTableColumn<Person,String> firstNameCol = new TreeTableColumn<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 TreeItem<Person> instance for a particular
             // TreeTableView row, and the second getValue() call returns the
             // Person instance contained within the TreeItem.
             return p.getValue().getValue().firstNameProperty();
         }
      });
     
     }
     

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

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

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

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

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

    C момента:
    JavaFX 8.0
    См. также:
    TreeTableColumn, TreeTableView, TreeTableCell, PropertyValueFactory, MapValueFactory
  • Краткое описание конструкторов

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

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

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

    • TreeItemPropertyValueFactory

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

    • call

      public ObservableValue<T> call​(TreeTableColumn.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