JavaFX mouseEvent方法getSceneX()在按住鼠标按钮后停止

时间:2017-09-27 08:04:43

标签: javafx

public void setListeners() {
    for(Scene s : Org.scenes) {
        s.setOnMouseMoved(new EventHandler<MouseEvent>() {

            @Override
            public void handle(MouseEvent event) {
                mouseX = event.getSceneX();
                mouseY= event.getSceneY();

            }

        });
    }
}

这段代码效果很好,但只要按住mouse1或mouse2,代码就不起作用,而且鼠标移动时鼠标和mouseY变量保持相同的值。我无法理解为什么按住鼠标按钮会暂停更新变量。

1 个答案:

答案 0 :(得分:0)

当您按下鼠标上的任何按钮时,不再将其视为鼠标移动事件,而是成为鼠标单击事件,如果您按住鼠标按钮并移动光标,则它将是鼠标拖动事件。因此,请尝试添加新的听众setOnMouseClicked()setOnMouseDragged()

    s.setOnMouseClicked(new EventHandler<MouseEvent>() {

                @Override
                public void handle(MouseEvent event) {
                    //what you want to do

                }

            });

    s.setOnMouseDragged(new EventHandler<MouseEvent>() {

                @Override
                public void handle(MouseEvent event) {
                    //what you want to do

                }

            });