如何在ScrollBar(JavaFX)中禁用水平滚动?

cy2*_*221 3 javafx mousewheel horizontal-scrolling

我禁用了以下代码显示水平ScrollBar:

scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
Run Code Online (Sandbox Code Playgroud)

它不再可见,但可以使用鼠标滚轮.我怎么能防止这种情况?

有一个带有垂直ScrollBar的ScrollPane.但我可以点击鼠标滚轮到右边,内容滚动水平.

谢谢.

Spo*_*ted 28

scrollPane.setFitToWidth(true);


nei*_*lnm 6

我相信这是正确的方法:

sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);
Run Code Online (Sandbox Code Playgroud)


gon*_*ard 3

编辑:使用这个答案而不是这个hacky答案


ScrollEvent您可以在事件过滤器中使用水平线:

    scrollPane.addEventFilter(ScrollEvent.SCROLL,new EventHandler<ScrollEvent>() {
        @Override
        public void handle(ScrollEvent event) {
            if (event.getDeltaX() != 0) {
                event.consume();
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

  • 这是一个如此丑陋的黑客,我什至不能!它有很多不需要的副作用..请使用下面使用 setFitToWidth(true) 进一步使用解决方案! (8认同)