我正试图以某种方式绑定一个
TableView
的滚动到
ScrollPane
我可以从两个滚动条中获得引用,但我无法绑定它们。
表视图
Scrollpane
的值介于0和1之间。
以下是我迄今为止尝试过的内容:
我是如何获得参考资料的:
private static ScrollBar getScrollBar(Control source) {
ScrollBar scrollBar = null;
for (Node node : source.lookupAll(".scroll-bar")) {
if (node instanceof ScrollBar && ((ScrollBar) node).getOrientation().equals(Orientation.HORIZONTAL)) {
scrollBar = (ScrollBar) node;
}
}
return scrollBar;
}
public static void bindScrollBars(ScrollPane scrollPane, TableView<?> table) {
ScrollBar scrollBarPane = getScrollBar(scrollPane);
ScrollBar scrollBarTable = getScrollBar(table);
scrollBarPane.valueProperty().bindBidirectional(scollBarTable.valueProperty())
}
这种方式可以实现绑定本身,但我需要将绑定乘以或除以100,以将它们缩放到相同的级别。
如果我尝试添加
.multyply(100)
或
.divide(100)
你能提出什么解决方案吗?
第二个问题是,如果我能得到前一个问题的解,那么我怎么能绑定两个以上的呢
Control
的滚动条?例如,如果我有4个
s(ScrollPane、TableView、TreeTableView、TreeTableView),如何确保所有这些组件的scollbar相互绑定?
P、 如果我尝试不使用双向绑定,只需绑定,例如:
scrollBarPane.valueProperty().bind(scrollBarTable.valueProperty().divide(100));
我得到一个RuntimeException,消息如下:
ScrollBar.value: A bound value cannot be set.