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

标签 javafx-2 javafx tableview

这个想法是:在 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/

相关文章:

java - 我可以在不分发源代码的情况下将 JavaFX 2.x 用于我的应用程序吗?

java - 替换 JavaFX GridPane 中(行,列)处的节点

javafx - 如何在 StackPane(在 JavaFX 中)中的节点上实现碰撞检测?

java - 如何在 JavaFX 中获取父节点中的所有节点?

ios - 将界面生成器中的 tableView 连接到 NON-outlet 变量

JavaFX 2 将场景的清晰快照保存到磁盘

java - 将 JFileChooser 与 PDFBox 一起使用时,文件不会保存为 pdf,但保存时不带扩展名

java - 图形自动填充按钮

java - 编辑单元格 javaFX 后恢复 tableview 中的 oldValue

JavaFX 将问号 TableView 转换为已知类型