Hiện không có tính năng nào như vậy. Trong thực tế, ngay cả thao tác trên thanh cuộn và trả lời các sự kiện thanh cuộn đều có vấn đề. Hai tùy chọn tôi có thể nghĩ:
Lựa chọn # 1 - Nhiều Bảng
Tạo một bố cục mới, trong đó có hai bảng và hai thanh cuộn như trong đoạn mã FXML dưới đây:
<BorderPane prefHeight="200.0" prefWidth="200.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<bottom>
<ScrollBar fx:id="hScroll" />
</bottom>
<center>
<HBox fx:id="varTable" prefHeight="100.0" prefWidth="200.0">
<children>
<TableView fx:id="fixedTable" prefHeight="200.0" prefWidth="200.0">
<columns>
<TableColumn prefWidth="75.0" text="Column X" />
<TableColumn prefWidth="75.0" text="Column X" />
</columns>
</TableView>
<TableView prefHeight="200.0" prefWidth="200.0" HBox.hgrow="ALWAYS">
<columns>
<TableColumn prefWidth="75.0" text="Column X" />
<TableColumn prefWidth="75.0" text="Column X" />
</columns>
</TableView>
</children>
</HBox>
</center>
<right>
<ScrollBar fx:id="vScroll" orientation="VERTICAL" />
</right>
</BorderPane>
Lưu ý tabe thứ hai có HBox.hgrow = "ALWAYS" được đặt.
Viết một chức năng để xác định vị trí các thanh cuộn trong một TableView:
private static final ScrollBar getScrollBar(final TableView<?> tableView) {
for (final VirtualFlow virtualFlow: Nodes.filter(Nodes.descendents(tableView, 2), VirtualFlow.class)) {
for (final Node subNode: virtualFlow.getChildrenUnmodifiable()) {
if (subNode instanceof ScrollBar && ((ScrollBar)subNode).getOrientation() == Orientation.VERTICAL) {
return (ScrollBar)subNode;
}
}
}
return null;
}
Sử dụng này để xác định vị trí hai thanh cuộn dọc và liên kết tài sản của họ (như min, max, giá trị, vv) vào thanh cuộn dọc của riêng bạn rồi ẩn thanh cuộn ban đầu. Bạn cũng sẽ cần phải đặt managed = false để chúng không chiếm không gian trong bố cục.
Định vị và ẩn thanh cuộn ngang và liên kết các thuộc tính của thanh cuộn ngang bảng 'di chuyển' với thanh cuộn ngang của riêng bạn.
Chúng tôi đang thành công khi sử dụng kỹ thuật này để liên kết hai bảng với một thanh cuộn duy nhất trong khi đợi this Jira được sửa.
Lựa chọn # 2 - Viết của bạn TableViewSkin riêng Tải nguồn JavaFX để xem những gì họ làm với da và sau đó bạn có thể viết một làn da tùy chỉnh hoàn toàn hoặc viết thư da mà kết thúc tốt đẹp hai da thường xuyên và thực hiện trong một cách tương tự như Tùy chọn # 1 ở trên