- 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, разработанная специально для использования вTreeTableColumncell 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.StringgetProperty()Возвращает имя свойства, заданное в конструкторе.
-
Подробное описание конструкторов
-
TreeItemPropertyValueFactory
public TreeItemPropertyValueFactory(String property)
Создаёт фабрику PropertyValue для извлечения значения из элемента строки TableView рефлексивно, используя заданное имя свойства.- Параметры:
-
property- Имя свойства, с помощью которого пытается рефлексивно извлечь соответствующее значение в заданном объекте.
-
-
Подробное описание методов
-
call
public ObservableValue<T> call(TreeTableColumn.CellDataFeatures<S,T> param)
Методcallвызывается при необходимости и получает единственный аргумент типа P, с требованием возвращения объекта типа 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.