如何用鼠标滚动ScrollPane?

时间:2014-07-10 22:01:05

标签: javafx

是否可以垂直和水平移动而不使用ScrollPane中的滚动条我想在按下鼠标左键并且鼠标向右,向左,向上和向下移动时滚动。我应该添加听众或类似的东西吗? 提前谢谢。

2 个答案:

答案 0 :(得分:9)

致电

scrollPane.setPannable(true);

或者,如果您使用的是FXML

<ScrollPane pannable="true" ... >

答案 1 :(得分:0)

我在&#34; setPannable(true)&#34;中发现了一个错误,如果两个拖动时间很短,则不是很平滑。

如何解决? 您需要手动使用它的事件。

    private boolean dragged = false;


    imageView.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> {
        dragged = true;
    });

    imageView.addEventFilter(MouseEvent.MOUSE_RELEASED, event -> {
        dragged = false;
    });

    imageView.addEventFilter(MouseEvent.MOUSE_DRAGGED, event -> {
        if (!dragged) {
            event.consume();// make the drag smooth
        }
    });

    scrollPane.setContent(imageView);
    scrollPane.setPannable(true);