MouseEvent.Moved, обнаружение перестает работать при нажатии кнопки мыши - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть программа, которая отслеживает мышь с помощью MouseEvent.MOVED в javafx, и всякий раз, когда я нажимаю и удерживаю кнопку мыши, отслеживание останавливается.

Я пытался переключить события с addEventFilter на addEventHandler.Добавление другого события MouseEvent.DRAGED.Но это даже не зарегистрирует событие, пока я не отключу код от MouseEvent.Moved.Я пытался объединить их, но ничего не получается.Помощь очень ценится.

EventHandler<MouseEvent> tracking = new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent e){
            double x = e.getSceneX();
            double y = e.getSceneY();

            if((x + size < 400) && (y - circle.getRadius() > 1)){
                switch (value){
                    case 0 :
                        circle.setCenterX(x);
                        circle.setCenterY(y);
                        break;
                    case 1 :
                        rec.setLayoutX(x);
                        rec.setLayoutY(y);
                        break;
                    case 2 :
                        pol.getPoints().clear();
                        pol.getPoints().addAll(new Double[]{x - size, y,      x + size, y, x, y + size});
                        break;
                }
            }
        }
    }; 
    EventHandler<MouseEvent> test = new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent e){
           System.out.print("test: ");
        }
    }; 


pane1.addEventHandler(MouseEvent.MOUSE_MOVED, tracking);
pane1.addEventFilter(MouseEvent.MOUSE_DRAGGED, test);

1 Ответ

0 голосов
/ 16 февраля 2019

Хорошо, я нашел, почему это не работает.На самом деле MouseEvent был активирован на объекте, который отслеживал мышь.Поэтому, когда я щелкнул мышью, он создал событие перетаскивания на этом объекте, которое не будет заканчиваться, пока я не отпущу кнопку мыши, спасибо за помощь:)

edit: я до сих пор не понимаю, почему он работает изначало.Плечо метод eventHandler захватывает событие, когда оно всплывает?

...