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

How to disable horizontal scrolling in ScrollBar (JavaFX)?

我使用以下代码禁用了水平滚动条的显示:

scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);

它不再可见,但可以通过鼠标滚轮使用。我怎样才能防止这种情况发生?

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

谢谢。

编辑:使用 而不是这个 hacky


你可以消耗横向 ScrollEvent in an event filter:

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

scrollPane.setFitToWidth(true);

我认为这是正确的方法:

sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);