JavaFX8 startFullDrag()无效

时间:2016-03-22 16:29:53

标签: java javafx drag-and-drop

我想通过拖放和连接来连接两个圆圈。下降。

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没有收到任何DragEvent

1 个答案:

答案 0 :(得分:0)

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

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