Spec-Zone.ru › OpenJavaFX 24

Класс TreeItemPropertyValueFactory<S,T>

java.lang.Object
javafx.scene.control.cell.TreeItemPropertyValueFactory<S,T>
Type Parameters:
S - тип TableView
T - тип TreeTableColumn
Все реализованные интерфейсы:
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 содержащий пакет безусловно.

С:
JavaFX 8.0
См. также:
  • TreeTableColumn
  • TreeTableView
  • TreeTableCell
  • PropertyValueFactory
  • MapValueFactory

Краткое описание конструкторов

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

Краткое описание методов

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

Методы, унаследованные от класса java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

TreeItemPropertyValueFactory

public TreeItemPropertyValueFactory(String property)
Создает стандартный PropertyValueFactory для извлечения значения из заданного элемента строки 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 и/или его аффилированные лица. Все права защищены.

© 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