Javafx在ScrollPane中禁用滚轮鼠标滚动

时间:2014-12-13 17:28:23

标签: javafx mousewheel scrollpane

anayone是否知道如何在ScrollPane中禁用鼠标滚轮滚动?

2 个答案:

答案 0 :(得分:2)

我认为没有直接的解决方案。

所以我add an event filter向ScrollPane SCROLL EventType并使用每个事件。这应该可以防止任何鼠标生成的滚动事件被委托给ScrollPane。

答案 1 :(得分:0)

以下适用于我:

    scrollPane.addEventFilter(ScrollEvent.ANY, new EventHandler<ScrollEvent>() {
        @Override
        public void handle(ScrollEvent event) {
            if (event.getDeltaY() > 0) {
                zoomIn();
            } else {
                zoomOut();
            }
            event.consume();
        }});

您可能会发现您还需要以下内容:

scrollPane.setOnScroll(new EventHandler<ScrollEvent>() {
    @Override
    public void handle(ScrollEvent event) {
        if (event.getDeltaY() > 0) {
            zoomIn();
        } else {
            zoomOut();
        }
        event.consume();
    }
});

我将上述详细说明添加到此主题中的另一个答案,但它从我所知道的公共Feed中没有显示出来。所以,我把它粘贴在自己的答案中。

这个问题有点重复,但它首先出现在Google上,所以我正在回答它。上述的灵感来自:

Zooming in JavaFx: ScrollEvent is consumed when content size exceeds ScrollPane viewport