- java.lang.Object
-
- javafx.scene.control.TableColumnBase<TreeItem<S>,T>
-
- javafx.scene.control.TreeTableColumn<S,T>
-
- 参数类型
-
S
- TableView通用类型的类型(即S == TableView <S>) -
T
- 此TableColumn中所有单元格中的内容类型。
- All Implemented Interfaces:
-
Styleable
,EventTarget
public class TreeTableColumn<S,T> extends TableColumnBase<TreeItem<S>,T> implements EventTarget
ATreeTableView
由多个TreeTableColumn实例组成。TreeTableView
中的每个TreeTableColumn负责显示(和编辑)该列的内容。 除了负责显示和编辑单个列的数据之外,TreeTableColumn还包含必要的属性:- 可以(使用尺寸调整二七○七○二五五一九二○一○一 / 二百七十○万七千零二十五亿五千一百九十三万六千二百八十六 / 二七�銎唼龆�五五一九五�鏊木牌�和
width
特性) - 有其
visibility
切换 - 显示
header text
- 显示可能包含的任何
nested columns
- 当用户右键单击列标题区域时,有
context menu
- 有表的内容进行排序(使用
comparator
,sortable
和sortType
)
text
(列标题区域中显示的内容)和列cell value factory
(用于填充列中的单个单元格)的列。 这可以使用以下代码中的一些变体来实现: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, // p.getValue().getValue() returns the Person instance inside the TreeItem<Person> return p.getValue().getValue().firstNameProperty(); } });
}p.getValue().getValue()
返回的对象具有可以简单地返回的JavaFXObservableValue
。 这样做的好处是,TableView将在内部创建绑定,以确保返回的ObservableValue
更改时,单元格内容将被自动刷新。在TableColumn必须与在JavaFX之前创建的类进行交互的情况下,或通常不希望为属性使用JavaFX API的情况下,可以将返回的值包装在一个
ReadOnlyObjectWrapper
的实例中。 例如: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, // p.getValue().getValue() returns the Person instance inside the TreeItem<Person> return new ReadOnlyObjectWrapper(p.getValue().getValue().getFirstName()); } });
}TreeItemPropertyValueFactory
。 这个类不需要编写上面的代码,而是依靠反射来从String中查找给定的属性。 有关如何使用TableColumn的更多信息,请参阅TreeItemPropertyValueFactory
类文档。 最后,有关如何使用TableColumn的更多细节,还有TableView
类文档中的进一步文档。- 从以下版本开始:
- JavaFX 8.0
- 另请参见:
-
TableView
,TableCell
,TablePosition
,TreeItemPropertyValueFactory
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>>>
cellFactory
该列中所有单元格的单元格工厂。ObjectProperty<Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>>
cellValueFactory
单元格值工厂需要设置为指定如何填充单个TreeTableColumn中的所有单元格。ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>>
onEditCancel
当用户取消编辑单元格时,将触发此事件处理程序。ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>>
onEditCommit
当用户成功提交编辑时,会触发此事件处理程序。ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>>
onEditStart
当用户成功启动编辑时,会触发此事件处理程序。ObjectProperty<TreeTableColumn.SortType>
sortType
用于说明此列是否为排序顺序的一部分(详见TreeTableView.getSortOrder()
),应按升序或降序排列。ReadOnlyObjectProperty<TreeTableView<S>>
treeTableView
TreeTableColumn属于的TreeTableView。-
Properties inherited from class javafx.scene.control.TableColumnBase
comparator, contextMenu, editable, graphic, id, maxWidth, minWidth, parentColumn, prefWidth, reorderable, resizable, sortable, sortNode, style, text, visible, width
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static class
TreeTableColumn.CellDataFeatures<S,T>
在TreeTableColumn中使用的支持类作为包装类,为特定的Cell
提供所有必要的信息。static class
TreeTableColumn.CellEditEvent<S,T>
用户在表单元格上执行编辑时触发的事件。static class
TreeTableColumn.SortType
枚举,指定应用于特定列的排序类型。
-
Field Summary
Fields Modifier and Type Field 描述 static Callback<TreeTableColumn<?,?>,TreeTableCell<?,?>>
DEFAULT_CELL_FACTORY
如果在TreeTableColumn实例上未指定cellFactory,则默认情况下将使用该实例。-
Fields inherited from class javafx.scene.control.TableColumnBase
DEFAULT_COMPARATOR
-
-
构造方法摘要
构造方法 Constructor 描述 TreeTableColumn()
使用默认单元格工厂,比较器和onEditCommit实现创建默认的TreeTableColumn。TreeTableColumn(String text)
创建一个TreeTableColumn,文本设置为提供的字符串,默认单元格工厂,比较器和onEditCommit实现。
-
方法摘要
-
Methods inherited from interface javafx.event.EventTarget
buildEventDispatchChain
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from class javafx.scene.control.TableColumnBase
addEventHandler, buildEventDispatchChain, comparatorProperty, contextMenuProperty, editableProperty, getCellData, getCellData, getComparator, getContextMenu, getGraphic, getId, getMaxWidth, getMinWidth, getParentColumn, getPrefWidth, getProperties, getPseudoClassStates, getSortNode, getStyle, getStyleClass, getText, getUserData, getWidth, graphicProperty, hasProperties, idProperty, isEditable, isReorderable, isResizable, isSortable, isVisible, maxWidthProperty, minWidthProperty, parentColumnProperty, prefWidthProperty, removeEventHandler, reorderableProperty, resizableProperty, setComparator, setContextMenu, setEditable, setGraphic, setId, setMaxWidth, setMinWidth, setPrefWidth, setReorderable, setResizable, setSortable, setSortNode, setStyle, setText, setUserData, setVisible, sortableProperty, sortNodeProperty, styleProperty, textProperty, visibleProperty, widthProperty
-
-
-
-
Property Detail
-
treeTableView
public final ReadOnlyObjectProperty<TreeTableView<S>> treeTableViewProperty
TreeTableColumn属于的TreeTableView。- 另请参见:
-
getTreeTableView()
-
cellValueFactory
public final ObjectProperty<Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> cellValueFactoryProperty
单元格值工厂需要设置为指定如何填充单个TreeTableColumn中的所有单元格。 一个单元格值工厂是一个Callback
,它提供了一个TreeTableColumn.CellDataFeatures
实例,并期望返回一个ObservableValue
。 返回的ObservableValue实例将在内部进行观察,以允许更新值立即反映在屏幕上。如何设置单元格值工厂的一个例子是:
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, // p.getValue().getValue() returns the Person instance inside the TreeItem<Person> return p.getValue().getValue().firstNameProperty(); } });
}TreeItemPropertyValueFactory
类。 有关如何使用该类的更多信息,请参阅此类,但简要说明如何使用TreeItemPropertyValueFactory类简化上述用例:firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
-
cellFactory
public final ObjectProperty<Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>>> cellFactoryProperty
该列中所有单元格的单元格工厂。 单元工厂负责渲染单个TreeTableColumn中每个TreeTableCell中包含的数据。默认情况下,TreeTableColumn使用
default cell factory
,但可以用自定义实现替换,例如以不同的方式显示数据或支持编辑。 有很多关于在其他地方创建自定义单元格工厂的文档(例如,见Cell
和TreeTableView
)。最后,
javafx.scene.control.cell
包中有许多预建的电池厂 。
-
sortType
public final ObjectProperty<TreeTableColumn.SortType> sortTypeProperty
用于说明此列是否为排序顺序的一部分(详见TreeTableView.getSortOrder()
),应按升序或降序进行排序。 只需切换此属性将导致TreeTableView中的排序顺序更改,假设此列位于sortOrder ObservableList中。
-
onEditStart
public final ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>> onEditStartProperty
当用户成功启动编辑时,会触发此事件处理程序。
-
onEditCommit
public final ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>> onEditCommitProperty
当用户成功提交编辑时,会触发此事件处理程序。
-
onEditCancel
public final ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>> onEditCancelProperty
当用户取消编辑单元格时,将触发此事件处理程序。
-
-
字段详细信息
-
DEFAULT_CELL_FACTORY
public static final Callback<TreeTableColumn<?,?>,TreeTableCell<?,?>> DEFAULT_CELL_FACTORY
如果在TreeTableColumn实例上未指定cellFactory,则默认情况下将使用该实例。 目前,如果item
属于节点,它将简单地将TableCell项目属性提交到270702554144952属性中,或者如果它不为空,则调用toString()
,将生成的字符串设置在text
属性中。
-
-
构造方法详细信息
-
TreeTableColumn
public TreeTableColumn()
使用默认单元格工厂,比较器和onEditCommit实现创建默认的TreeTableColumn。
-
TreeTableColumn
public TreeTableColumn(String text)
创建一个TreeTableColumn,文本设置为提供的字符串,默认单元格工厂,比较器和onEditCommit实现。- 参数
-
text
- 当TreeTableColumn放置在TreeTableView中时显示的字符串。
-
-
方法详细信息
-
editAnyEvent
public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editAnyEvent()
任何TreeTableColumn编辑事件的父事件。- 参数类型
-
S
- TreeTableView泛型类型的类型 -
T
- 此TreeTableColumn中所有单元格中的内容类型 - 结果
- 编辑事件
-
editStartEvent
public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editStartEvent()
表示用户执行了一些交互以启动编辑事件,或者TreeTableView.edit(int, javafx.scene.control.TreeTableColumn)
方法已被调用。- 参数类型
-
S
- TreeTableView泛型类型的类型 -
T
- 此TreeTableColumn中所有单元格中的内容类型 - 结果
- 编辑开始事件
-
editCancelEvent
public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editCancelEvent()
表示编辑已被取消,这意味着不应对后备数据源进行任何更改。- 参数类型
-
S
- TreeTableView泛型类型的类型 -
T
- 此TreeTableColumn中所有单元格中的内容类型 - 结果
- 编辑取消事件
-
editCommitEvent
public static <S,T> EventType<TreeTableColumn.CellEditEvent<S,T>> editCommitEvent()
表示编辑已由用户提交,这意味着应对后备数据源进行更改以反映新数据。- 参数类型
-
S
- TreeTableView通用类型的类型 -
T
- 此TreeTableColumn中所有单元格中的内容类型 - 结果
- 编辑提交事件
-
treeTableViewProperty
public final ReadOnlyObjectProperty<TreeTableView<S>> treeTableViewProperty()
TreeTableColumn属于的TreeTableView。- 另请参见:
-
getTreeTableView()
-
getTreeTableView
public final TreeTableView<S> getTreeTableView()
获取属性treeTableView的值。- Property description:
- TreeTableColumn属于的TreeTableView。
-
setCellValueFactory
public final void setCellValueFactory(Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>> value)
设置属性cellValueFactory的值。- Property description:
-
单元格值工厂需要设置为指定如何填充单个TreeTableColumn中的所有单元格。
一个单元格值工厂是一个
Callback
,它提供了一个TreeTableColumn.CellDataFeatures
的实例,并期望返回一个ObservableValue
。 返回的ObservableValue实例将在内部进行观察,以允许更新值立即反映在屏幕上。如何设置单元格值工厂的一个例子是:
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, // p.getValue().getValue() returns the Person instance inside the TreeItem<Person> return p.getValue().getValue().firstNameProperty(); } });
}TreeItemPropertyValueFactory
类。 有关如何使用该类的更多信息,请参阅此类,但简要说明如何使用TreeItemPropertyValueFactory类简化上述用例:firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
-
getCellValueFactory
public final Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>> getCellValueFactory()
获取属性cellValueFactory的值。- Property description:
-
单元格值工厂需要设置为指定如何填充单个TreeTableColumn中的所有单元格。
一个单元格值工厂是一个
Callback
,它提供了一个TreeTableColumn.CellDataFeatures
实例,并期望返回一个ObservableValue
。 返回的ObservableValue实例将在内部进行观察,以允许更新值立即反映在屏幕上。如何设置单元格值工厂的一个例子是:
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, // p.getValue().getValue() returns the Person instance inside the TreeItem<Person> return p.getValue().getValue().firstNameProperty(); } });
}TreeItemPropertyValueFactory
类。 有关如何使用该类的更多信息,请参阅此类,但简要说明如何使用TreeItemPropertyValueFactory类简化上述用例:firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
-
cellValueFactoryProperty
public final ObjectProperty<Callback<TreeTableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> cellValueFactoryProperty()
单元格值工厂需要设置为指定如何填充单个TreeTableColumn中的所有单元格。 一个单元格值工厂是一个Callback
,它提供了一个TreeTableColumn.CellDataFeatures
的实例,并期望返回一个ObservableValue
。 返回的ObservableValue实例将在内部进行观察,以允许更新值立即反映在屏幕上。如何设置单元格值工厂的一个例子是:
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, // p.getValue().getValue() returns the Person instance inside the TreeItem<Person> return p.getValue().getValue().firstNameProperty(); } });
}TreeItemPropertyValueFactory
类。 有关如何使用该类的更多信息,请参阅此类,但简要说明如何使用TreeItemPropertyValueFactory类简化上述用例:firstNameCol.setCellValueFactory(new TreeItemPropertyValueFactory<Person,String>("firstName"));
-
setCellFactory
public final void setCellFactory(Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>> value)
设置属性cellFactory的值。- Property description:
-
该列中所有单元格的单元格工厂。
单元工厂负责渲染单个TreeTableColumn中每个TreeTableCell中包含的数据。
默认情况下,TreeTableColumn使用
default cell factory
,但是可以用自定义实现替换,例如以不同的方式显示数据或支持编辑。 有很多关于在其他地方创建自定义单元格工厂的文档(例如,参见Cell
和TreeTableView
)。最后,
javafx.scene.control.cell
包中有许多预建的电池厂可用。
-
getCellFactory
public final Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>> getCellFactory()
获取属性cellFactory的值。- Property description:
-
该列中所有单元格的单元格工厂。
单元工厂负责渲染单个TreeTableColumn中每个TreeTableCell中包含的数据。
默认情况下,TreeTableColumn使用
default cell factory
,但是可以用自定义实现替换,例如以不同的方式显示数据或支持编辑。 有很多关于在其他地方创建自定义单元格工厂的文档(例如,参见Cell
和TreeTableView
)。最后,
javafx.scene.control.cell
包中有许多预建的电池厂可用。
-
cellFactoryProperty
public final ObjectProperty<Callback<TreeTableColumn<S,T>,TreeTableCell<S,T>>> cellFactoryProperty()
该列中所有单元格的单元格工厂。 单元工厂负责渲染单个TreeTableColumn中每个TreeTableCell中包含的数据。默认情况下,TreeTableColumn使用
default cell factory
,但可以用自定义实现替换,例如以不同的方式显示数据或支持编辑。 有很多关于在其他地方创建自定义单元格工厂的文档(例如,见Cell
和TreeTableView
)。最后,
javafx.scene.control.cell
包中有一些预先建成的电池厂 。
-
sortTypeProperty
public final ObjectProperty<TreeTableColumn.SortType> sortTypeProperty()
用于说明此列是否为排序顺序的一部分(详见TreeTableView.getSortOrder()
),应按升序或降序排列。 只需切换此属性将导致TreeTableView中的排序顺序更改,假设此列位于sortOrder ObservableList中。
-
setSortType
public final void setSortType(TreeTableColumn.SortType value)
设置属性sortType的值。- Property description:
-
用于说明此列是否为排序顺序的一部分(详见
TreeTableView.getSortOrder()
),应按升序或降序排序。 只需切换此属性将导致TreeTableView中的排序顺序更改,假设此列位于sortOrder ObservableList中。
-
getSortType
public final TreeTableColumn.SortType getSortType()
获取属性sortType的值。- Property description:
-
用于说明此列是否为排序顺序的一部分(详见
TreeTableView.getSortOrder()
),应按升序或降序进行排序。 只需切换此属性将导致TreeTableView中的排序顺序更改,假设此列位于sortOrder ObservableList中。
-
setOnEditStart
public final void setOnEditStart(EventHandler<TreeTableColumn.CellEditEvent<S,T>> value)
设置属性onEditStart的值。- Property description:
- 当用户成功启动编辑时,会触发此事件处理程序。
-
getOnEditStart
public final EventHandler<TreeTableColumn.CellEditEvent<S,T>> getOnEditStart()
获取onEditStart上的属性的值。- Property description:
- 当用户成功启动编辑时,会触发此事件处理程序。
-
onEditStartProperty
public final ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>> onEditStartProperty()
当用户成功启动编辑时,会触发此事件处理程序。
-
setOnEditCommit
public final void setOnEditCommit(EventHandler<TreeTableColumn.CellEditEvent<S,T>> value)
设置属性onEditCommit的值。- Property description:
- 当用户成功提交编辑时,会触发此事件处理程序。
-
getOnEditCommit
public final EventHandler<TreeTableColumn.CellEditEvent<S,T>> getOnEditCommit()
获取属性onEditCommit的值。- Property description:
- 当用户成功提交编辑时,会触发此事件处理程序。
-
onEditCommitProperty
public final ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>> onEditCommitProperty()
当用户成功提交编辑时,会触发此事件处理程序。
-
setOnEditCancel
public final void setOnEditCancel(EventHandler<TreeTableColumn.CellEditEvent<S,T>> value)
设置属性onEditCancel的值。- Property description:
- 当用户取消编辑单元格时,将触发此事件处理程序。
-
getOnEditCancel
public final EventHandler<TreeTableColumn.CellEditEvent<S,T>> getOnEditCancel()
获取属性onEditCancel的值。- Property description:
- 当用户取消编辑单元格时,将触发此事件处理程序。
-
onEditCancelProperty
public final ObjectProperty<EventHandler<TreeTableColumn.CellEditEvent<S,T>>> onEditCancelProperty()
当用户取消编辑单元格时,将触发此事件处理程序。
-
getColumns
public final ObservableList<TreeTableColumn<S,?>> getColumns()
这样可以支持嵌套列,这对于将相关数据组合在一起是有用的。 例如,我们可能有一个“名称”列,其中包含“First”和“Last”名称的两个嵌套列。这对于这样没有影响 - 所有列索引仅指向叶子列,并且不可能使用父列进行排序,只能使用叶列。 换句话说,这纯粹是一个视觉特征。
- Specified by:
-
getColumns
在TableColumnBase<TreeItem<S>,T>
- 结果
- 一个包含TableColumnBase实例(或子类)的ObservableList,它是此TableColumnBase的子项。 如果这些孩子的TableColumnBase实例设置为可见,它们将显示在此表列下方。
-
getCellObservableValue
public final ObservableValue<T> getCellObservableValue(int index)
尝试返回给定索引(类型为S)中的项目的ObservableValue <T>。 换句话说,该方法期望接收大于或等于零且小于底层数据模型大小的整数值。 如果索引有效,此方法将返回此特定列的ObservableValue <T>。这可以通过调用
cell value factory
来实现,并返回传递CellDataFeatures
任何返回CellDataFeatures
(例如,参见例如,属于TableColumn
的CellDataFeatures类以及TreeTableColumn
的更多信息)。- Specified by:
-
getCellObservableValue
在TableColumnBase<TreeItem<S>,T>
- 参数
-
index
- 寻找ObservableValue <T>的项目(S型)的索引。 - 结果
- 此特定表列的ObservableValue <T>。
-
getCellObservableValue
public final ObservableValue<T> getCellObservableValue(TreeItem<S> item)
尝试返回给定项目(其类型为S)的ObservableValue <T>。 换句话说,该方法期望从表中的整个“行”的底层数据模型接收一个对象,并且必须返回该特定列中的值的ObservableValue <T>。这可以通过调用
cell value factory
来实现,并返回任何通过CellDataFeatures
返回的CellDataFeatures
(例如,参见例如,属于TableColumn
的CellDataFeatures类和TreeTableColumn
的更多信息)。- Specified by:
-
getCellObservableValue
在TableColumnBase<TreeItem<S>,T>
- 参数
-
item
- 寻求ObservableValue <T>的项目(S型)。 - 结果
- 此特定表列的ObservableValue <T>。
-
getTypeSelector
public String getTypeSelector()
- Specified by:
-
getTypeSelector
在接口Styleable
- 结果
- “TreeTableColumn”
-
getStyleableParent
public Styleable getStyleableParent()
返回此Styleable的父项,如果没有父项则返回null。- Specified by:
-
getStyleableParent
接口Styleable
- 结果
-
getTreeTableView()
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
这个样式的CssMetaData。 这可以作为不可修改的列表返回。- Specified by:
-
getCssMetaData
在接口Styleable
- 结果
- CssMetaData
-
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
-
getStyleableNode
public Node getStyleableNode()
返回表示此Styleable对象的Node。 在Styleable本身不是Node的情况下,应该覆盖此方法,以便它可以可选地返回其本身的相关根节点表示。 默认情况下,此方法返回null,这可能意味着Styleable本身是一个Node,如果不是这种情况,则Styleable在请求时没有可用的节点表示。- Specified by:
-
getStyleableNode
在接口Styleable
- 结果
- 表示此Styleable对象的节点
-
-