为了账号安全,请及时绑定邮箱和手机立即绑定

MouseEvent.Moved,按下鼠标按钮时检测停止工作

MouseEvent.Moved,按下鼠标按钮时检测停止工作

慕慕森 2022-06-23 16:30:33
我有一个程序可以在 javafx 中使用 MouseEvent.MOVED 跟踪鼠标,每当我按住鼠标按钮时,跟踪就会停止。我试图将事件从 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 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

好吧,我找到了为什么它不起作用。MouseEvent 实际上是在跟踪鼠标的对象上激活的。因此,当我单击鼠标时,它会在该对象上创建一个拖动事件,直到我释放鼠标按钮才会结束,感谢您的帮助:)

编辑:我仍然不明白为什么它从一开始就不起作用。eventHandler 方法是否应该在事件冒泡时捕获事件?


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信