- 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, специально разработанная для использования вTableColumncell value factory. Пример использования этого класса:TableColumn<Person,String> firstNameCol = new TableColumn<Person,String>("First Name"); firstNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("firstName"));В этом примере,
Person— это тип класса элементов спискаTableViewitems. Класс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.StringgetProperty()Возвращает имя свойства, предоставленное в конструкторе.
-
Подробное описание конструкторов
-
PropertyValueFactory
public PropertyValueFactory(String property)
Создаёт фабрику PropertyValueFactory по умолчанию для извлечения значения из элемента строки TableView рефлексивно, используя заданное имя свойства.- Параметры:
-
property- Имя свойства, с помощью которого пытаться рефлексивно извлечь соответствующее значение в заданном объекте.
-
-
Подробное описание методов
-
call
public ObservableValue<T> call(TableColumn.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.