Attualmente non esiste una funzione simile. In effetti, anche manipolare la barra di scorrimento e rispondere agli eventi della barra di scorrimento è problematico. Due opzioni mi viene in mente:
Opzione # 1 - Multiple Tabella
creare un nuovo layout che contiene i due tavoli e due barre di scorrimento, come nel frammento FXML di seguito:
<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>
Nota la seconda tabella ha HBox.hgrow = set "SEMPRE".
scrivere una funzione per localizzare la barra di scorrimento in una 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;
}
Usare questo per localizzare le due barre di scorrimento verticale e legare sue proprietà (come Min, Max, il valore ecc) alla tua barra di scorrimento verticale e quindi nascondi le barre di scorrimento originali. Sarà inoltre necessario impostare managed = false in modo che non occupino spazio nel layout.
Individuare e nascondere le barre di scorrimento orizzontale e associare le proprietà della barra di scorrimento orizzontale della tabella "mobile" alla propria barra di scorrimento orizzontale.
Stiamo utilizzando con successo questa tecnica per collegare due tabelle con una barra di scorrimento singola durante l'attesa di this Jira da correggere.
Opzione # 2 - Scrivi la tua TableViewSkin Scarica la fonte JavaFX per vedere cosa fanno con la pelle e quindi è possibile scrivere una skin personalizzata completa o scrivere una pelle che avvolge due pelli normali e implementare in un modo simile all'opzione n. 1 sopra