gpt4 book ai didi

javafx-2 - JavaFX,如何卡住TableView中某些列的位置

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:18 37 4
gpt4 key购买 nike

这个想法是:在 N 列的 TableView 上,即使使用水平滚动条,前 M 列也始终可见。

唯一接近我要求的是这个 Binding two tableviews together such that they scroll in sync 。在我看来,并排放置两个表的想法并不是最好的,因为

1) 两个表之间的列排序部分独立:如果使用相同的 observableList,则行在两个表中排序,但不可能对多个列进行排序,其中至少有一列不在表中同 table
2) 没有与鼠标滚轮或方向键同步滚动

我知道,我可能可以使用事件处理程序和监听器来处理此类问题,但我希望可以只使用一张表。

所以,问题是:TableView 或 TableColumns 上是否有任何可配置的属性来实现我正在寻找的行为?

最佳答案

我能够卡住 javafx TableView 中的列。我们需要创建自定义表列类,其中我们将有两个方法 setFixedisFixed这将用于使某些列固定。

除此之外,您还需要创建自己的

  1. TableViewskin

  2. TableHeaderRow - 基本上在这个类中你需要覆盖 getRootHeader()方法

  3. NestedTableColumnHeader - 在此类中覆盖 layoutChildren()方法并添加新方法来布局 fixedColumns
  4. VirtualFlow
  5. TableView - 覆盖createDefaultSkin() ,添加新的booleanProperty showColumnHeader和一个ObservableArrayList对于 fixedTableColumn
  6. TableRow - 覆盖createDefaultSkin()
  7. TableRowSkinBase - 覆盖layoutChildren()处理固定列的方法。

关于javafx-2 - JavaFX,如何卡住TableView中某些列的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469164/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com