- java.lang.Object
-
- javafx.scene.control.TableColumnBase<S,T>
-
- javafx.scene.control.TableColumn<S,T>
-
- 参数类型
-
S
- TableView通用类型的类型(即S == TableView <S>) -
T
- 此TableColumn中所有单元格中的内容类型。
- All Implemented Interfaces:
-
Styleable
,EventTarget
public class TableColumn<S,T> extends TableColumnBase<S,T> implements EventTarget
ATableView
由多个TableColumn实例组成。 表中的每个TableColumn都负责显示(和编辑)该列的内容。 除了负责显示和编辑单个列的数据之外,TableColumn还包含必要的属性:- 可以(使用尺寸调整二七零七零零五五二三六五七八二 / 二百七万七千零五亿五千二百三十八万一千一百七十七 / 二百七十万七千零五亿五千二百四十一万七千一和
width
特性) - 有其
visibility
切换 - 显示
header text
- 显示可能包含的任何
nested columns
- 有一个
context menu
用户右键单击列标题区域 - 有表的内容进行排序(使用
comparator
,sortable
和sortType
)
text
(列标题区域中显示的内容)和列cell value factory
(用于填充列中的单个单元格)的列。 这可以使用以下代码中的一些变体来实现:ObservableList<Person> data = ... TableView<Person> tableView = new TableView<Person>(data); 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(); } });
tableView.getColumns().add(firstNameCol);}p.getValue()
返回的对象具有可以简单地返回的JavaFXObservableValue
。 这样做的好处是,TableView将在内部创建绑定,以确保在返回的ObservableValue
更改时,单元格内容将被自动刷新。在TableColumn必须与JavaFX之前创建的类进行交互的情况下,或者通常不希望为属性使用JavaFX apis的情况下,可以将返回的值包装在一个
ReadOnlyObjectWrapper
实例中。 例如:firstNameCol.setCellValueFactory(new Callback<CellDataFeatures<Person, String>, ObservableValue<String>>() { public ObservableValue<String> call(CellDataFeatures<Person, String> p) { return new ReadOnlyObjectWrapper(p.getValue().getFirstName()); } });
PropertyValueFactory
。 这个类不需要编写上面的代码,而是依靠反射来从String中查找给定的属性。 有关如何使用TableColumn的更多信息,请参阅PropertyValueFactory
类文档。 最后,有关如何使用TableColumn的更多详细信息,请参阅TableView
类文档中的进一步文档。- 从以下版本开始:
- JavaFX 2.0
- 另请参见:
-
TableView
,TableCell
,TablePosition
-
-
Property Summary
Properties Type Property 描述 ObjectProperty<Callback<TableColumn<S,T>,TableCell<S,T>>>
cellFactory
该列中所有单元格的单元格工厂。ObjectProperty<Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>>>
cellValueFactory
单元格值工厂需要设置为指定如何填充单个TableColumn中的所有单元格。ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>>
onEditCancel
当用户取消编辑单元格时,将触发此事件处理程序。ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>>
onEditCommit
当用户成功提交编辑时,会触发此事件处理程序。ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>>
onEditStart
当用户成功启动编辑时,会触发此事件处理程序。ObjectProperty<TableColumn.SortType>
sortType
用于说明此列是否为排序顺序的一部分(详见TableView.getSortOrder()
),应按升序或降序进行排序。ReadOnlyObjectProperty<TableView<S>>
tableView
TableView这个TableColumn属于。-
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
TableColumn.CellDataFeatures<S,T>
在TableColumn中使用的支持类作为包装类,为特定的Cell
提供所有必要的信息。static class
TableColumn.CellEditEvent<S,T>
用户在表单元格上执行编辑时触发的事件。static class
TableColumn.SortType
枚举,指定应用于特定列的排序类型。
-
Field Summary
Fields Modifier and Type Field 描述 static Callback<TableColumn<?,?>,TableCell<?,?>>
DEFAULT_CELL_FACTORY
如果在TableColumn实例上未指定cellFactory,则默认情况下将使用该实例。-
Fields inherited from class javafx.scene.control.TableColumnBase
DEFAULT_COMPARATOR
-
-
构造方法摘要
构造方法 Constructor 描述 TableColumn()
使用默认单元格工厂,比较器和onEditCommit实现创建默认的TableColumn。TableColumn(String text)
创建一个TableColumn,文本设置为提供的字符串,默认单元格工厂,比较器和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
-
tableView
public final ReadOnlyObjectProperty<TableView<S>> tableViewProperty
TableView这个TableColumn属于。- 另请参见:
-
getTableView()
-
cellValueFactory
public final ObjectProperty<Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> cellValueFactoryProperty
单元格值工厂需要设置为指定如何填充单个TableColumn中的所有单元格。 一个单元格值工厂是一个Callback
,它提供了一个TableColumn.CellDataFeatures
的实例,并期望返回一个ObservableValue
。 将在内部观察返回的ObservableValue实例,以便立即更新要在屏幕上反映的值。 如何设置单元格值工厂的一个例子是:lastNameCol.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().lastNameProperty(); } }); }
PropertyValueFactory
类。 有关如何使用它的更多信息,请参阅此类,但简要的说明如何使用PropertyValueFactory类简化上述用例:lastNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("lastName"));
-
cellFactory
public final ObjectProperty<Callback<TableColumn<S,T>,TableCell<S,T>>> cellFactoryProperty
该列中所有单元格的单元格工厂。 单元工厂负责渲染每个TableCell中包含的单个表列的数据。默认情况下,TableColumn使用
default cell factory
,但是可以用自定义实现来替换,例如以不同的方式显示数据或支持编辑。有很多关于在其他地方创建自定义单元格工厂的文档(参见Cell
和TableView
) )。最后,在
javafx.scene.control.cell
包中有一些预建的电池厂可用。
-
sortType
public final ObjectProperty<TableColumn.SortType> sortTypeProperty
用于说明此列是否为排序顺序的一部分(详见TableView.getSortOrder()
),应按升序或降序排列。 只需切换此属性将导致排序顺序在TableView中更改,假设此列位于sortOrder ObservableList中。
-
onEditStart
public final ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>> onEditStartProperty
当用户成功启动编辑时,会触发此事件处理程序。
-
onEditCommit
public final ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>> onEditCommitProperty
当用户成功提交编辑时,会触发此事件处理程序。
-
onEditCancel
public final ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>> onEditCancelProperty
当用户取消编辑单元格时,将触发此事件处理程序。
-
-
字段详细信息
-
DEFAULT_CELL_FACTORY
public static final Callback<TableColumn<?,?>,TableCell<?,?>> DEFAULT_CELL_FACTORY
-
-
构造方法详细信息
-
TableColumn
public TableColumn()
使用默认单元格工厂,比较器和onEditCommit实现创建默认的TableColumn。
-
TableColumn
public TableColumn(String text)
创建一个TableColumn,文本设置为提供的字符串,默认单元格工厂,比较器和onEditCommit实现。- 参数
-
text
- 在TableView中放置TableColumn时显示的字符串。
-
-
方法详细信息
-
editAnyEvent
public static <S,T> EventType<TableColumn.CellEditEvent<S,T>> editAnyEvent()
任何TableColumn编辑事件的父事件。- 参数类型
-
S
- TableView通用类型的类型 -
T
- 此TableColumn中所有单元格中的内容类型 - 结果
- 任何TableColumn编辑事件
-
editStartEvent
public static <S,T> EventType<TableColumn.CellEditEvent<S,T>> editStartEvent()
表示用户已经执行了一些交互以启动编辑事件,或者已经调用了TableView.edit(int, javafx.scene.control.TableColumn)
方法。- 参数类型
-
S
- TableView通用类型的类型 -
T
- 此TableColumn中所有单元格中的内容类型 - 结果
- 开始编辑事件
-
editCancelEvent
public static <S,T> EventType<TableColumn.CellEditEvent<S,T>> editCancelEvent()
表示编辑已被取消,这意味着不应对后备数据源进行任何更改。- 参数类型
-
S
- TableView通用类型的类型 -
T
- 此TableColumn中所有单元格中的内容类型 - 结果
- 取消编辑事件
-
editCommitEvent
public static <S,T> EventType<TableColumn.CellEditEvent<S,T>> editCommitEvent()
表示编辑已由用户提交,这意味着应对后备数据源进行更改以反映新数据。- 参数类型
-
S
- TableView通用类型的类型 -
T
- 此TableColumn中所有单元格中的内容类型 - 结果
- 提交编辑事件
-
tableViewProperty
public final ReadOnlyObjectProperty<TableView<S>> tableViewProperty()
TableView这个TableColumn属于。- 另请参见:
-
getTableView()
-
getTableView
public final TableView<S> getTableView()
获取属性tableView的值。- Property description:
- TableView这个TableColumn属于。
-
setCellValueFactory
public final void setCellValueFactory(Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>> value)
设置属性cellValueFactory的值。- Property description:
-
单元格值工厂需要设置为指定如何填充单个TableColumn中的所有单元格。
一个单元格值工厂是一个
Callback
,它提供了一个TableColumn.CellDataFeatures
实例,并期望返回一个ObservableValue
。 将在内部观察返回的ObservableValue实例,以便立即更新要在屏幕上反映的值。 如何设置单元格值工厂的一个例子是:lastNameCol.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().lastNameProperty(); } }); }
PropertyValueFactory
类。 有关如何使用它的更多信息,请参阅此类,但简要的说明如何使用PropertyValueFactory类简化上述用例:lastNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("lastName"));
-
getCellValueFactory
public final Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>> getCellValueFactory()
获取属性cellValueFactory的值。- Property description:
-
单元格值工厂需要设置为指定如何填充单个TableColumn中的所有单元格。
一个单元格值工厂是一个
Callback
,它提供了一个TableColumn.CellDataFeatures
实例,并期望返回一个ObservableValue
。 将在内部观察返回的ObservableValue实例,以便立即更新要在屏幕上反映的值。 如何设置单元格值工厂的一个例子是:lastNameCol.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().lastNameProperty(); } }); }
PropertyValueFactory
类。 有关如何使用它的更多信息,请参阅此类,但简要的说明如何使用PropertyValueFactory类简化上述用例:lastNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("lastName"));
-
cellValueFactoryProperty
public final ObjectProperty<Callback<TableColumn.CellDataFeatures<S,T>,ObservableValue<T>>> cellValueFactoryProperty()
单元格值工厂需要设置为指定如何填充单个TableColumn中的所有单元格。 一个单元格值工厂是一个Callback
,它提供了一个TableColumn.CellDataFeatures
实例,并期望返回一个ObservableValue
。 将在内部观察返回的ObservableValue实例,以便立即更新要在屏幕上反映的值。 如何设置单元格值工厂的一个例子是:lastNameCol.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().lastNameProperty(); } }); }
PropertyValueFactory
类。 有关如何使用它的更多信息,请参阅此类,但简要的说明如何使用PropertyValueFactory类简化上述用例:lastNameCol.setCellValueFactory(new PropertyValueFactory<Person,String>("lastName"));
-
setCellFactory
public final void setCellFactory(Callback<TableColumn<S,T>,TableCell<S,T>> value)
设置属性cellFactory的值。- Property description:
-
该列中所有单元格的单元格工厂。
单元工厂负责渲染每个TableCell中包含的单个表列的数据。
默认情况下,TableColumn使用
default cell factory
,但是可以用自定义实现替换,例如以不同的方式显示数据或支持编辑。有很多关于在其他地方创建自定义单元格工厂的文档(参见Cell
和TableView
) )。最后,在
javafx.scene.control.cell
包中有许多预建的电池厂可用。
-
getCellFactory
public final Callback<TableColumn<S,T>,TableCell<S,T>> getCellFactory()
获取属性cellFactory的值。- Property description:
-
该列中所有单元格的单元格工厂。
单元工厂负责渲染每个TableCell中包含的单个表列的数据。
默认情况下,TableColumn使用
default cell factory
,但是可以用自定义实现替换,例如以不同的方式显示数据或支持编辑。有很多关于在其他地方创建自定义单元格工厂的文档(参见Cell
和TableView
) )。最后,在
javafx.scene.control.cell
包中有许多预建的电池厂可用。
-
cellFactoryProperty
public final ObjectProperty<Callback<TableColumn<S,T>,TableCell<S,T>>> cellFactoryProperty()
该列中所有单元格的单元格工厂。 单元工厂负责渲染每个TableCell中包含的单个表列的数据。默认情况下,TableColumn使用
default cell factory
,但是可以用自定义实现来替换,例如以不同的方式显示数据或支持编辑。有很多关于在其他地方创建自定义单元格工厂的文档(参见Cell
和TableView
) )。最后,在
javafx.scene.control.cell
包中有一些预先建成的电池厂 。
-
sortTypeProperty
public final ObjectProperty<TableColumn.SortType> sortTypeProperty()
用于说明此列是否为排序顺序的一部分(详细信息请参阅TableView.getSortOrder()
),应按升序或降序进行排序。 只需切换此属性将导致排序顺序在TableView中更改,假设此列位于sortOrder ObservableList中。
-
setSortType
public final void setSortType(TableColumn.SortType value)
设置属性sortType的值。- Property description:
-
用于说明此列是否为排序顺序的一部分(详见
TableView.getSortOrder()
),应按升序或降序排列。 只需切换此属性将导致排序顺序在TableView中更改,假设此列位于sortOrder ObservableList中。
-
getSortType
public final TableColumn.SortType getSortType()
获取属性sortType的值。- Property description:
-
用于说明此列是否为排序顺序的一部分(详见
TableView.getSortOrder()
),应按升序或降序进行排序。 只需切换此属性将导致排序顺序在TableView中更改,假设此列位于sortOrder ObservableList中。
-
setOnEditStart
public final void setOnEditStart(EventHandler<TableColumn.CellEditEvent<S,T>> value)
设置属性onEditStart的值。- Property description:
- 当用户成功启动编辑时,会触发此事件处理程序。
-
getOnEditStart
public final EventHandler<TableColumn.CellEditEvent<S,T>> getOnEditStart()
获取onEditStart上的属性的值。- Property description:
- 当用户成功启动编辑时,会触发此事件处理程序。
-
onEditStartProperty
public final ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>> onEditStartProperty()
当用户成功启动编辑时,会触发此事件处理程序。
-
setOnEditCommit
public final void setOnEditCommit(EventHandler<TableColumn.CellEditEvent<S,T>> value)
设置属性onEditCommit的值。- Property description:
- 当用户成功提交编辑时,会触发此事件处理程序。
-
getOnEditCommit
public final EventHandler<TableColumn.CellEditEvent<S,T>> getOnEditCommit()
获取属性onEditCommit的值。- Property description:
- 当用户成功提交编辑时,会触发此事件处理程序。
-
onEditCommitProperty
public final ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>> onEditCommitProperty()
当用户成功提交编辑时,会触发此事件处理程序。
-
setOnEditCancel
public final void setOnEditCancel(EventHandler<TableColumn.CellEditEvent<S,T>> value)
设置属性onEditCancel的值。- Property description:
- 当用户取消编辑单元格时,将触发此事件处理程序。
-
getOnEditCancel
public final EventHandler<TableColumn.CellEditEvent<S,T>> getOnEditCancel()
获取属性onEditCancel的值。- Property description:
- 当用户取消编辑单元格时,将触发此事件处理程序。
-
onEditCancelProperty
public final ObjectProperty<EventHandler<TableColumn.CellEditEvent<S,T>>> onEditCancelProperty()
当用户取消编辑单元格时,将触发此事件处理程序。
-
getColumns
public final ObservableList<TableColumn<S,?>> getColumns()
这样可以支持嵌套列,这对于将相关数据组合在一起是有用的。 例如,我们可能有一个“名称”列,其中包含“First”和“Last”名称的两个嵌套列。这对于这样没有影响 - 所有列索引仅指向叶子列,并且不可能使用父列进行排序,只能使用叶列。 换句话说,这纯粹是一个视觉特征。
- Specified by:
-
getColumns
在TableColumnBase<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
和TreeTableColumn
的更多信息)时返回它。- Specified by:
-
getCellObservableValue
在TableColumnBase<S,T>
- 参数
-
index
- 寻求ObservableValue <T>的项目(S型)的索引。 - 结果
- 此特定表列的ObservableValue <T>。
-
getCellObservableValue
public final ObservableValue<T> getCellObservableValue(S item)
尝试返回给定项目(其类型为S)的ObservableValue <T>。 换句话说,该方法期望从表中的整个“行”的底层数据模型接收一个对象,并且必须返回该特定列中的值的ObservableValue <T>。这可以通过调用
cell value factory
实现,并返回通过CellDataFeatures
时返回的任何内容(例如,有关详细信息,请参阅例如,属于TableColumn
和TreeTableColumn
的CellDataFeatures类)。- Specified by:
-
getCellObservableValue
在TableColumnBase<S,T>
- 参数
-
item
- 寻求ObservableValue <T>的项目(S型)。 - 结果
- 此特定表列的ObservableValue <T>。
-
getTypeSelector
public String getTypeSelector()
- Specified by:
-
getTypeSelector
在接口Styleable
- 结果
- “TableColumn的”
- 从以下版本开始:
- JavaFX 8.0
-
getStyleableParent
public Styleable getStyleableParent()
返回此Styleable的父项,如果没有父项则返回null。- Specified by:
-
getStyleableParent
在接口Styleable
- 结果
-
getTableView()
- 从以下版本开始:
- JavaFX 8.0
-
getCssMetaData
public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
这个样式的CssMetaData。 这可以作为不可修改的列表返回。- Specified by:
-
getCssMetaData
在接口Styleable
- 结果
- CssMetaData
- 从以下版本开始:
- JavaFX 8.0
-
getClassCssMetaData
public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
- 结果
- 与此类相关联的CssMetaData可能包括其类的CssMetaData。
- 从以下版本开始:
- JavaFX 8.0
-
getStyleableNode
public Node getStyleableNode()
返回表示此Styleable对象的Node。 在Styleable本身不是Node的情况下,应该覆盖此方法,以便它可以可选地返回其本身的相关根节点表示。 默认情况下,此方法返回null,这可能意味着Styleable本身是一个Node,如果不是这种情况,则Styleable在请求时没有可用的节点表示。- Specified by:
-
getStyleableNode
在接口Styleable
- 结果
- 表示此Styleable对象的节点
-
-