【问题标题】:JavaFX8 startFullDrag() not effectiveJavaFX8 startFullDrag() 无效
【发布时间】:2016-03-22 16:29:53
【问题描述】:

我想通过拖放连接两个圆圈。

Pane p = new Pane();

Circle c1 = new Circle(5);
c1.relocate(10,10);
c1.addEventFilter(MouseEvent.DRAG_DETECTED, e -> {
    c1.startFullDrag();
    System.out.println("started");
});

Circle c2 = new Circle(5);
c2.relocate(40,40);
c2.addEventFilter(DragEvent.ANY, e -> System.out.println("any") );
c2.addEventFilter(DragEvent.DRAG_ENTERED, e -> System.out.println("entered") );

p.getChildren().addAll(c1, c2);

这就是我尝试过的。
当从左侧圆圈c1 拖放到右侧圆圈c2 时,DRAG_DETECTED 事件将起作用。
但不会触发DragEvent.ANYDragEvent.DRAG_ENTERED

我也尝试在DRAG_DETECTED 中使用鼠标事件,但这也没有改变任何东西。 我也尝试使用setOnDragEntered(EventHandler)addEventHandler(EventType, EventHandler) 而不是addEventFilter(EventType, EventHandler),但没有一个有效。

为什么c2 没有收到任何DragEvents?

【问题讨论】:

    标签: java javafx drag-and-drop


    【解决方案1】:

    startFullDrag() 将触发 MouseDragEvents,但不会触发 DragEvents。

    addEventFilter(DragEvent.DRAG_ENTERED, ... ); 替换为addEventFilter(MouseDragEvent.DRAG_ENTERED, ... );

    【讨论】:

      猜你喜欢
      • 2019-06-11
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多