我已经添加了一个用于滚动到我的tableview的事件处理程序,但它仅在我使用滚轮滚动时才有效,但是当你单击并拖动滚动条时我需要它才能工作。任何想法都错了吗?我尝试过为事件使用不同的方法,但没有一种方法有效。
继承我的代码:
tableVw.addEventFilter(ScrollEvent.ANY, new EventHandler<ScrollEvent>() {
@Override
public void handle(ScrollEvent scrollEvent) {
System.out.println("scrolling");
}
});
感谢任何帮助,谢谢!
答案 0 :(得分:0)
谢谢James_D。 有效的代码:
scrollbar.valueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
// Stuff with scrollbar here
}
});
要获取我使用的滚动条:
public static ScrollBar getVerticalScrollbar(TableView<?> table) {
ScrollBar result = null;
for(Node n : table.lookupAll(".scroll-bar")) {
if(n instanceof ScrollBar) {
ScrollBar bar = (ScrollBar) n;
if(bar.getOrientation().equals(Orientation.VERTICAL)) {
result = bar;
}
}
}
return result;
}
我不知道它是否是最佳解决方案,但它有效。