Module  javafx.controls
软件包  javafx.scene.control

Class TableView<S>

  • 参数类型
    S - TableView项目列表中包含的对象的类型。
    All Implemented Interfaces:
    StyleableEventTargetSkinnable


    @DefaultProperty("items")
    public class TableView<S>
    extends Control
    TableView控件旨在可视化无限数量的数据行,分为列。 因此,TableView非常类似于ListView控件,还增加了对列的支持。 有关如何创建TableView的示例,请参阅下面的“创建TableView”控件部分。

    TableView控件有许多功能,包括:

    请注意,TableView旨在用于可视化数据 - 它不打算用于布局用户界面。 如果要将用户界面放置成网格状,请考虑使用GridPane布局。

    创建TableView

    创建TableView是一个多步骤的过程,也取决于需要表示的底层数据模型。 对于这个例子,我们将使用一个ObservableList <Person>,因为它是在TableView中显示数据的最简单方法。 <code> Person </ code>类将包含名字和姓氏属性。 那是:

       public class Person { private StringProperty firstName; public void setFirstName(String value) { firstNameProperty().set(value); } public String getFirstName() { return firstNameProperty().get(); } public StringProperty firstNameProperty() { if (firstName == null) firstName = new SimpleStringProperty(this, "firstName"); return firstName; } private StringProperty lastName; public void setLastName(String value) { lastNameProperty().set(value); } public String getLastName() { return lastNameProperty().get(); } public StringProperty lastNameProperty() { if (lastName == null) lastName = new SimpleStringProperty(this, "lastName"); return lastName; } } 

    首先,需要定义TableView实例:

       TableView<Person> table = new TableView<Person>(); 
    <p>在定义了基本表格之后,我们再重点关注数据模型。 如上所述,对于这个例子,我们将使用一个ObservableList <Person>。 我们可以立即将这样的列表直接设置到TableView中:
       ObservableList<Person> teamMembers = getTeamMembers(); table.setItems(teamMembers); 

    对于这样的项目,TableView会在teamMembers列表更改时自动更新。 如果项目列表在TableView被实例化之前可用,则可以将它直接传递给构造函数。

    在这一点上,我们现在有一个TableView挂接观察teamMembers observableList。 缺失的成分现在是分解模型中包含的数据并在一个或多个TableColumn实例中表示的方法。 要创建一个两列TableView以显示firstName和lastName属性,我们将如下扩展最后一个代码示例:

       ObservableList<Person> teamMembers = ...; table.setItems(teamMembers); TableColumn<Person,String> firstNameCol = new TableColumn<Person,String>("First Name"); firstNameCol.setCellValueFactory(new PropertyValueFactory("firstName")); TableColumn<Person,String> lastNameCol = new TableColumn<Person,String>("Last Name"); lastNameCol.setCellValueFactory(new PropertyValueFactory("lastName")); table.getColumns().setAll(firstNameCol, lastNameCol); 

    使用上面显示的代码,我们已经完全定义了创建TableView实例所需的最小属性。 运行这个代码(假设人物ObservableList被适当地创建)将导致一个TableView被显示为具有firstName和lastName两列。 不会显示Person类的任何其他属性,因为没有定义TableColumns。

    对于不包含属性的类,TableView支持

    上面所示的代码是在域对象设计时考虑到JavaFX属性时创建TableView的最短代码(另外, PropertyValueFactory支持普通的JavaBean属性,尽管有一个警告,因此请参考类文档以获取更多信息信息)。 当不是这种情况时,需要提供一个自定义单元格值工厂。 有关单元格值工厂的更多信息,请参见TableColumn API文档,但简要说明如何指定TableColumn:

       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 Selection / Focus API

    要跟踪选择和重点,有必要熟悉SelectionModelFocusModel类。 TableView最多有一个这些类的一个实例,分别可从selectionModelfocusModel属性获得。 虽然可以使用此API来设置新的选择模型,但在大多数情况下,这不是必需的 - 默认选择和焦点模型应该在大多数情况下工作。

    在实例化TableView时使用的默认值为SelectionModelMultipleSelectionModel抽象类的实现。 但是,如selectionMode属性的API文档中所述,默认值为SelectionMode.SINGLE 要在默认的TableView实例中启用多个选择,因此需要执行以下操作:

       tableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); 

    自定义TableView视觉

    可以通过替换默认的row factory完全自定义TableView的视觉效果。 行工厂用于生成TableRow实例,用于表示TableView中的整个行。

    在许多情况下,这不是所期望的,因为更常见的情况是,单元格是以每列为单位进行定制的,而不是每行。 因此,重要的是要注意, TableRow不是TableCell A TableRow只是一个零或多个TableCell的容器,在大多数情况下,您更有可能要创建自定义TableCells而不是TableRows。 创建自定义TableRow实例的主要用例很可能是引入某种形式的列跨越支持。

    您可以通过将适当的功能分配给TableColumn cell factory属性来创建每列的自定义TableCell实例。

    有关如何编写自定义单元格的更完整的说明,请参阅Cell类文档。

    排序

    在JavaFX 8.0之前,TableView控件会将items列表视为视图模型,这意味着对列表的任何更改都将立即反映在视觉上。 当用户发起排序时,TableView也会直接修改此列表的顺序。 这意味着(再次,在JavaFX 8.0之前),不可能让TableView返回到未排序的状态(通过升序和降序顺序迭代)。

    从JavaFX 8.0开始(和SortedList的介绍),当没有列作为TableView sort order一部分时,现在可以使收集返回到未排序状态。 为此,您必须创建一个SortedList实例,并将其comparator属性绑定到TableView comparator属性列表中:

       // create a SortedList based on the provided ObservableList SortedList sortedList = new SortedList(FXCollections.observableArrayList(2, 1, 3)); // create a TableView with the sorted list set as the items it will show final TableView<Integer> tableView = new TableView<>(sortedList); // bind the sortedList comparator to the TableView comparator sortedList.comparatorProperty().bind(tableView.comparatorProperty()); // Don't forget to define columns!  

    编辑

    此控件支持值的内联编辑,本节尝试概述可用的API以及如何使用它们。

    首先,细胞编辑通常需要不同于不编辑细胞的用户界面。 这是正在使用的Cell实现的责任。 对于TableView,强烈建议编辑为per-TableColumn而不是per row ,因为您希望用户不希望用不同的方式编辑每个列值,并且这种方法允许对每列进行编辑。 您可以选择单元格是否处于编辑状态(例如,这对于CheckBox单元格是常见的),或者在编辑开始时切换到不同的UI(例如,当单元格上接收到双击时)。

    要知道在单元格上请求编辑时,只需覆盖Cell.startEdit()方法,并根据需要更新单元格textgraphic属性(例如,将文本设置为null,并将图形设置为TextField )。 此外,您还应该覆盖Cell.cancelEdit()以便在编辑结束时将UI重置为原始的可视状态。 在这两种情况下,重要的是您还要确保您调用超级方法以使单元格执行所有必须执行的任务,以进入或退出其编辑模式。

    一旦您的单元格处于编辑状态,您最感兴趣的下一件事就是如何提交或取消正在进行的编辑。 这是您作为电池厂商的责任。 您的单元实现将基于用户输入(例如当用户按下键盘上的Enter键或ESC键时)知道编辑结束。 发生这种情况时,您有责任酌情致电Cell.commitEdit(Object)Cell.cancelEdit()

    当您调用Cell.commitEdit(Object)事件触发到TableView时,您可以通过TableColumn.setOnEditCommit(javafx.event.EventHandler)添加一个EventHandler观察 同样,您也可以观察edit startedit cancel编辑事件。

    默认情况下,TableColumn编辑提交处理程序是非空的,默认处理程序会尝试覆盖当前正在编辑的行中的项目的属性值。 它可以做到这一点,因为Cell.commitEdit(Object)方法被传递给新的值,并且这被传递给编辑提交处理程序通过CellEditEvent被触发。 只需调用TableColumn.CellEditEvent.getNewValue()即可检索该值。

    需要注意的是,如果你把它是非常重要的TableColumn.setOnEditCommit(javafx.event.EventHandler)用自己EventHandler ,那么你会删除默认的处理程序。 除非您再处理该属性(或相关数据源)的回写,否则不会发生任何事情。 您可以使用TableColumnBase.addEventHandler(javafx.event.EventType, javafx.event.EventHandler)方法添加一个TableColumn.EDIT_COMMIT_EVENT EventType与您所需的EventHandler作为第二个参数。 使用此方法,您将不会替换默认实现,但在发生编辑提交时会收到通知。

    希望这个总结回答了一些常见问题。 幸运的是,JavaFX附带了许多预先构建的单元格工厂,可以代表您处理所有的编辑要求。 您可以在javafx.scene.control.cell包中找到这些预构建的单元工厂。

    从以下版本开始:
    JavaFX 2.0
    另请参见:
    TableColumnTablePosition
    • 字段详细信息

      • UNCONSTRAINED_RESIZE_POLICY

        public static final Callback<TableView.ResizeFeatures,Boolean> UNCONSTRAINED_RESIZE_POLICY

        非常简单的调整策略,只需通过提供的增量来调整指定列的大小,并将所有其他列(给定列的右侧)向右移动(当增量为正)或向左(当增量为负数时) 。

        它还处理我们通过共享新空间嵌套列或者在所有直接子列之间均匀地减去已移除的空间的情况。 当然,直接的孩子本身可能是嵌套的,然后他们会对孩子们使用这个政策。

      • CONSTRAINED_RESIZE_POLICY

        public static final Callback<TableView.ResizeFeatures,Boolean> CONSTRAINED_RESIZE_POLICY

        确保此表中所有可见叶列的宽度的简单策略总和等于表本身的宽度。

        当用户使用此策略调整列宽时,表会自动调整右侧列的宽度。 当用户增加列宽时,表会减小最右列的宽度,直到达到最小宽度。 然后它减小第二个最右边的列的宽度,直到达到最小宽度等等。 当所有右侧列达到最小尺寸时,用户不能再增加已调整大小的列的大小。

      • DEFAULT_SORT_POLICY

        public static final Callback<TableView,Boolean> DEFAULT_SORT_POLICY
        如果没有指定其他策略,则TableView将使用默认值sort policy 排序策略是一个简单的Callback ,它接受TableView作为唯一的参数,并期望一个布尔响应来表示排序是否成功。 一个布尔响应为true表示成功,并且一个false(或null)的响应将被视为代表失败。
        从以下版本开始:
        JavaFX 8.0
    • 构造方法详细信息

      • TableView

        public TableView​()
        创建一个没有内容的默认TableView控件。

        有关其他属性的默认状态的详细信息,请参阅TableView类文档。

      • TableView

        public TableView​(ObservableList<S> items)
        使用ObservableList项中提供的内容创建TableView。 这也设置一个观察者,使得对项目列表的任何更改将立即反映在TableView本身中。

        有关其他属性的默认状态的详细信息,请参阅TableView类文档。

        参数
        items - 要插入TableView的项目,以及要监视更改的列表(在TableView中自动显示)。
    • 方法详细信息

      • setItems

        public final void setItems​(ObservableList<S> value)
        设置属性项的值。
        Property description:
        TableView的基础数据模型。 请注意,它具有必须与TableView本身类型匹配的通用类型。
      • getItems

        public final ObservableList<S> getItems​()
        获取属性项的值。
        Property description:
        TableView的基础数据模型。 请注意,它具有必须与TableView本身类型匹配的通用类型。
      • tableMenuButtonVisibleProperty

        public final BooleanProperty tableMenuButtonVisibleProperty​()
        当用户单击TableView中的指定空间时,这可以控制菜单按钮是否可用,其中是该表中每个TableColumn的无线菜单项。 此菜单允许用户轻松显示和隐藏所有TableColumns。
        另请参见:
        isTableMenuButtonVisible()setTableMenuButtonVisible(boolean)
      • setTableMenuButtonVisible

        public final void setTableMenuButtonVisible​(boolean value)
        设置属性tableMenuButtonVisible的值。
        Property description:
        当用户单击TableView中的指定空间时,这可以控制菜单按钮是否可用,其中是该表中每个TableColumn的无线菜单项。 此菜单允许用户轻松显示和隐藏所有TableColumns。
      • isTableMenuButtonVisible

        public final boolean isTableMenuButtonVisible​()
        获取属性tableMenuButtonVisible的值。
        Property description:
        当用户单击TableView中的指定空间时,这可以控制菜单按钮是否可用,其中是该表中每个TableColumn的无线菜单项。 此菜单允许用户轻松显示和隐藏所有TableColumns。
      • rowFactoryProperty

        public final ObjectProperty<Callback<TableView<S>,TableRow<S>>> rowFactoryProperty​()
        一个产生TableRow的函数。 该系统负责重用TableRows。 从此函数返回可用于在TableView中表示单个行的TableRow。

        请注意,TableRow 不是 TableCell。 200的X- 20045 X- 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 创建自定义TableRow实例的主要用例很可能是引入某种形式的列跨越支持。

        您可以通过将适当的函数分配给TableColumn类中的cellFactory属性来创建每个列的自定义TableCell实例。

        另请参见:
        getRowFactory()setRowFactory(Callback)
      • setRowFactory

        public final void setRowFactory​(Callback<TableView<S>,TableRow<S>> value)
        设置属性rowFactory的值。
        Property description:
        一个产生TableRow的函数。 该系统负责重用TableRows。 从此函数返回可用于在TableView中表示单个行的TableRow。

        请注意,TableRow 不是 TableCell。 200的X- 20045 X- 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 创建自定义TableRow实例的主要用例很可能是引入某种形式的列跨越支持。

        您可以通过将适当的函数分配给TableColumn类中的cellFactory属性来创建每个列的自定义TableCell实例。

      • getRowFactory

        public final Callback<TableView<S>,TableRow<S>> getRowFactory​()
        获取属性rowFactory的值。
        Property description:
        一个产生TableRow的函数。 该系统负责重用TableRows。 从此函数返回可用于在TableView中表示单个行的TableRow。

        请注意,TableRow 不是 TableCell。 200的X- 20045 X- 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 200 200 X- 创建自定义TableRow实例的主要用例很可能是引入某种形式的列跨越支持。

        您可以通过将适当的函数分配给TableColumn类中的cellFactory属性来创建每个列的自定义TableCell实例。

      • placeholderProperty

        public final ObjectProperty<Node> placeholderProperty​()
        当表没有显示的内容时,向用户显示该节点。 新新新新旗新新新旗新新旗新新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗旗新新旗新新旗新新旗新新旗新新旗新200新新旗新新旗新新旗新新旗新新旗新200新新旗新新200新新旗新新200新新旗新新200新200新新旗新新200新新旗2001-新新新新旗新新200新新200新200新新200新新200新200新新200新新200新新200新新200新新200新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新
        另请参见:
        getPlaceholder()setPlaceholder(Node)
      • setPlaceholder

        public final void setPlaceholder​(Node value)
        设置属性占位符的值。
        Property description:
        当表没有显示的内容时,向用户显示该节点。 新新新新旗新新新旗新新旗新新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗旗新新旗新新旗新新旗新新旗新新旗新200新新旗新新旗新新旗新新旗新新旗新200新新旗新新200新新旗新新200新新旗新新200新200新新旗新新200新新旗2001-新新新新旗新新200新新200新200新新200新新200新200新新200新新200新新200新新200新新200新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新
      • getPlaceholder

        public final Node getPlaceholder​()
        获取属性占位符的值。
        Property description:
        当表没有显示的内容时,向用户显示该节点。 新新新新旗新新新旗新新旗新新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗旗新新旗新新旗新新旗新新旗新新旗新200新新旗新新旗新新旗新新旗新新旗新200新新旗新新200新新旗新新200新新旗新新200新200新新旗新新200新新旗2001-新新新新旗新新200新新200新200新新200新新200新200新新200新新200新新200新新200新新200新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新新200新
      • setSelectionModel

        public final void setSelectionModel​(TableView.TableViewSelectionModel<S> value)
        设置属性selectionModel的值。
        Property description:
        SelectionModel提供了可以在TableView中选择单个或多个项目的API,以及检查用户选择了哪些项目。 请注意,它具有必须与TableView本身类型匹配的通用类型。
      • getSelectionModel

        public final TableView.TableViewSelectionModel<S> getSelectionModel​()
        获取属性selectionModel的值。
        Property description:
        SelectionModel提供了可以在TableView中选择单个或多个项目的API,以及检查用户选择了哪些项目。 请注意,它具有必须与TableView本身类型匹配的通用类型。
      • setEditable

        public final void setEditable​(boolean value)
        设置属性可编辑的值。
        Property description:
        指定此TableView是否可编辑 - 只有TableView,TableColumn(如果适用)和TableCells中的TableCells都可以编辑,TableCell才能进入编辑状态。
      • isEditable

        public final boolean isEditable​()
        获取可编辑属性的值。
        Property description:
        指定此TableView是否可编辑 - 只有TableView,TableColumn(如果适用)和TableCells中的TableCells都可以编辑,TableCell才能进入编辑状态。
      • editableProperty

        public final BooleanProperty editableProperty​()
        指定此TableView是否可编辑 - 只有TableView,TableColumn(如果适用)和TableCells中的TableCells都可以编辑,TableCell才能进入编辑状态。
        另请参见:
        isEditable()setEditable(boolean)
      • setFixedCellSize

        public final void setFixedCellSize​(double value)
        设置此控件的新固定单元格大小。 任何大于零的值将启用固定的单元大小模式,而零值或负值(或Region.USE_COMPUTED_SIZE)将用于禁用固定单元大小模式。
        参数
        value - 新的固定单元格大小值,或小于或等于零(或Region.USE_COMPUTED_SIZE)的值禁用。
        从以下版本开始:
        JavaFX 8.0
      • getFixedCellSize

        public final double getFixedCellSize​()
        返回固定的单元格大小值。 使用小于或等于零的值来表示禁用固定单元大小模式,大于零的值表示此控件中所有单元格的大小。
        结果
        表示该控件的固定单元大小的double,或者如果固定单元大小模式被禁用,小于或等于零的值。
        从以下版本开始:
        JavaFX 8.0
      • fixedCellSizeProperty

        public final DoubleProperty fixedCellSizeProperty​()
        指定此控件是否具有固定高度(指定值)的单元格。 如果该值小于或等于零,则所有单元格都被单独设置和定位。 这是一个缓慢的操作。 因此,当性能重要且开发人员不依赖于可变单元大小时,设置固定单元大小值是一个好主意。 一般情况下,单元格大约为24像素,因此设置固定的单元格大小为24可能导致视觉差异很小,但性能有所改善。

        要通过CSS设置此属性,请使用-fx-fixed-cell-size属性。 这不应该与-fx-cell-size属性混淆。 这两个CSS属性之间的区别是-fx-cell-size将所有单元格的大小设置为指定的大小,但不会强制这是唯一的大小(从而允许变量单元大小,并且阻止性能提升可能)。 因此,当性能很重要的时候使用-fx-fixed-cell-size,而不是-fx-cell-size。 如果在CSS中指定了两个属性,则-fx-fixed-cell-size优先。

        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getFixedCellSize()setFixedCellSize(double)
      • getEditingCell

        public final TablePosition<S,?> getEditingCell​()
        获取属性editingCell的值。
        Property description:
        表示正在编辑的当前单元格,如果没有编辑单元格,则为空。
      • getComparator

        public final Comparator<S> getComparator​()
        获取属性比较器的值。
        Property description:
        比较器属性是一个只读属性,代表sort order列表的当前状态。 排序顺序列表包含以编程方式添加的列或通过用户单击标题本身的列。
        从以下版本开始:
        JavaFX 8.0
      • comparatorProperty

        public final ReadOnlyObjectProperty<Comparator<S>> comparatorProperty​()
        比较器属性是一个只读属性,表示sort order列表的当前状态。 排序顺序列表包含以编程方式添加的列或通过用户单击标题本身的列。
        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getComparator()
      • setSortPolicy

        public final void setSortPolicy​(Callback<TableView<S>,Boolean> callback)
        设置属性sortPolicy的值。
        Property description:
        排序策略指定如何执行此TableView中的排序。 例如,基本的排序策略可以调用FXCollections.sort(tableView.getItems()) ,而更高级的排序策略可以调用数据库来在服务器端执行必要的排序。

        TableView附带了一个default sort policy ,正如上面提到的那样:它只是尝试在原位排序项目列表。

        建议不要覆盖sort方法,而是提供不同的排序策略。

        从以下版本开始:
        JavaFX 8.0
      • getSortPolicy

        public final Callback<TableView<S>,Boolean> getSortPolicy​()
        获取属性sortPolicy的值。
        Property description:
        排序策略指定如何执行此TableView中的排序。 例如,基本排序策略可能只是调用FXCollections.sort(tableView.getItems()) ,而更高级的排序策略可能会调用数据库来在服务器端执行必要的排序。

        TableView附带一个default sort policy ,正如上面提到的那样:它只是尝试在原位排序项目列表。

        建议不要覆盖提供不同排序策略的sort方法。

        从以下版本开始:
        JavaFX 8.0
      • sortPolicyProperty

        public final ObjectProperty<Callback<TableView<S>,Boolean>> sortPolicyProperty​()
        排序策略指定如何执行此TableView中的排序。 例如,基本排序策略可以调用FXCollections.sort(tableView.getItems()) ,而更高级的排序策略可以调用数据库来在服务器端执行必要的排序。

        TableView附带一个default sort policy ,正如上面提到的那样:它只是尝试在原位排序项目列表。

        建议不要覆盖sort方法,而是提供不同的排序策略。

        从以下版本开始:
        JavaFX 8.0
        另请参见:
        getSortPolicy()setSortPolicy(Callback)
      • setOnSort

        public void setOnSort​(EventHandler<SortEvent<TableView<S>>> value)
        设置属性onSort的值。
        Property description:
        当有请求排序控件时调用。
        从以下版本开始:
        JavaFX 8.0
      • getOnSort

        public EventHandler<SortEvent<TableView<S>>> getOnSort​()
        获取属性onSort的值。
        Property description:
        当有请求排序控件时调用。
        从以下版本开始:
        JavaFX 8.0
      • getColumns

        public final ObservableList<TableColumn<S,?>> getColumns​()
        TableColumns是TableView的一部分。 当用户重新排列TableView列时,此列表将被更新以反映当前的视觉排序。

        注意:要在TableView中显示任何数据,该ObservableList中必须至少有一个TableColumn。

        结果
      • getSortOrder

        public final ObservableList<TableColumn<S,?>> getSortOrder​()
        sortOrder列表定义了TableColumn实例进行排序的顺序。 一个空的排序列表表示在TableView上没有应用排序。 如果sortOrder列表中有一个TableColumn,则TableView将使用此TableColumn的sortTypecomparator属性进行排序(假设为TableColumn.sortable为true)。 如果sortOrder列表包含多个TableColumn实例,则首先根据第一个TableColumn的属性对TableView进行排序。 如果两个元素被认为相等,则列表中的第二个TableColumn用于确定排序。 如果需要,将重复此操作,直到所有TableColumn比较器的结果被考虑为止。
        结果
        一个包含零个或多个TableColumn实例的ObservableList。
      • scrollTo

        public void scrollTo​(int index)
        滚动TableView,使给定索引在视口内可见。
        参数
        index - 应该对用户可见的项目的索引。
      • scrollTo

        public void scrollTo​(S object)
        滚动TableView,使给定对象在视口内可见。
        参数
        object - 应该对用户可见的对象。
        从以下版本开始:
        JavaFX 8.0
      • scrollToColumn

        public void scrollToColumn​(TableColumn<S,?> column)
        滚动TableView,使给定的列在视口内可见。
        参数
        column - 应该对用户可见的列。
        从以下版本开始:
        JavaFX 8.0
      • scrollToColumnIndex

        public void scrollToColumnIndex​(int columnIndex)
        滚动TableView,使给定索引在视口内可见。
        参数
        columnIndex - 用户可以看到的列的索引。
        从以下版本开始:
        JavaFX 8.0
      • resizeColumn

        public boolean resizeColumn​(TableColumn<S,?> column,
                                    double delta)
        根据给定的列应用当前安装的大小调整策略,根据提供的增量值调整其大小。
        参数
        column - 列
        delta - 三角洲
        结果
        如果允许列调整大小,则为true
      • edit

        public void edit​(int row,
                         TableColumn<S,?> column)
        导致给定行/列视图索引处的单元格切换到其编辑状态(如果尚未存在),并且假设TableView和列也是可编辑的。

        注意:如果给定的行值小于零并且给定的列为空,此方法将取消编辑。

        参数
        row - 行
        column - 列
      • getVisibleLeafColumns

        public ObservableList<TableColumn<S,?>> getVisibleLeafColumns​()
        返回一个不可修改的列表,其中包含当前可见的叶子列。
        结果
        一个包含当前可见的叶子列的不可修改的列表
      • getVisibleLeafIndex

        public int getVisibleLeafIndex​(TableColumn<S,?> column)
        相对于所有其他可见的叶子列,返回给定列的位置。
        参数
        column - 列
        结果
        相对于所有其他可见叶列,给定列的位置
      • getVisibleLeafColumn

        public TableColumn<S,?> getVisibleLeafColumn​(int column)
        相对于所有其他可见的叶子列,返回给定列索引中的TableColumn。
        参数
        column - 列
        结果
        相对于所有其他可见的叶子列,给定列索引中的TableColumn
      • createDefaultSkin

        protected Skin<?> createDefaultSkin​()
        为此控件创建一个新的默认皮肤实例。 如果没有通过CSS -fx-skin提供皮肤或者在具有setSkin(...)的子类中显式设置,则调用此控件创建皮肤。
        重写:
        createDefaultSkinControl
        结果
        此控件的默认皮肤的新实例。 如果为null,则控件将没有皮肤,除非由css提供。
      • sort

        public void sort​()
        排序方法强制TableView重新运行其排序算法。 往往不是没有必要直接调用此方法,因为它被自动调用时sort ordersort policy ,或将TableColumn的状态sort type性质发生变化。 换句话说,这种方法只能在需要外部更改和排序时直接调用。
        从以下版本开始:
        JavaFX 8.0
      • refresh

        public void refresh​()
        调用refresh()强制TableView控件重新创建并重新填充填充控件的可视边界所需的单元格。 换句话说,这会强制TableView更新它向用户显示的内容。 这在底层数据源以TableView本身未观察到的方式发生更改的情况下很有用。
        从以下版本开始:
        JavaFX 8u60
      • getClassCssMetaData

        public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData​()
        结果
        与此类相关联的CssMetaData可能包括其类的CssMetaData。
        从以下版本开始:
        JavaFX 8.0
      • queryAccessibleAttribute

        public Object queryAccessibleAttribute​(AccessibleAttribute attribute,
                                               Object... parameters)
        该方法由辅助技术调用以请求属性的值。

        子类通常覆盖此方法来实现特定角色所需的属性。
        如果未处理特定属性,则必须调用超类实现。

        重写:
        queryAccessibleAttributeControl
        参数
        attribute - 请求的属性
        parameters - 可选参数列表
        结果
        请求的属性的值
        另请参见:
        AccessibleAttribute