我需要知道如何更改ScrollPane
对象用于上下移动内容的数量。例如,ScrollBar
具有以下两种方法:
scrollBar.setUnitIncrement(10);
scrollBar.setBlockIncrement(50);
如何使用
ScrollPane
而不是ScrollBar
进行相同操作? 最佳答案
有相同的问题,无法找到答案。最终,从Erik提供的link中获得了正确的方法,并使其适应了我的需求。
由于scrollPane本身不会触发“setOnScroll”事件(可能是因为它在执行此操作之前就被消耗了),因此我必须在ScrollPane的内容上设置EventHandler:
scrollPane_Content.setContent(vBox_Content);
vBox_Content.setOnScroll(new EventHandler<ScrollEvent>() {
@Override
public void handle(ScrollEvent event) {
double deltaY = event.getDeltaY()*6; // *6 to make the scrolling a bit faster
double width = scrollPane_Content.getContent().getBoundsInLocal().getWidth();
double vvalue = scrollPane_Content.getVvalue();
scrollPane_Content.setVvalue(vvalue + -deltaY/width); // deltaY/width to make the scrolling equally fast regardless of the actual width of the component
}
});
这样做可以直接使用滚动条,也可以使用鼠标滚轮上下滚动。
希望这对寻求加快scrollPane上的滚动速度的其他人有所帮助。
关于java - 如何更改ScrollPane的滚动量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32739269/