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

13

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

scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);

它不再可见,但可以通过鼠标滚轮使用。我该如何防止这种情况发生?

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

谢谢。


1
你能发布一个 MCVE 吗? - ItachiUchiha
您想要滚动窗格的高度适合其内容的高度吗? - gontard
3个回答

47

scrollPane.setFitToWidth(true);


1
我该如何将这个方法应用到ListView或JFXListView上? - Door D Uthpala

6
我认为这是正确的方式:
sp.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER);

3

编辑:使用this answer而不是这个hacky的方法


你可以在 事件过滤器 中使用水平 ScrollEvent
    scrollPane.addEventFilter(ScrollEvent.SCROLL,new EventHandler<ScrollEvent>() {
        @Override
        public void handle(ScrollEvent event) {
            if (event.getDeltaX() != 0) {
                event.consume();
            }
        }
    });

8
这个东西太丑陋了,我都无法忍受!它会产生太多不必要的副作用...请使用下面更优的解决方案,并将setFitToWidth(true)设置为真! - Neuron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接