我想通过拖放连接两个圈子。
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.ANY
或DragEvent.DRAG_ENTERED
不会被触发。我还尝试使用
DRAG_DETECTED
中的鼠标事件,但这也没有任何改变。我也尝试使用
setOnDragEntered(EventHandler)
和addEventHandler(EventType, EventHandler)
代替addEventFilter(EventType, EventHandler)
,但是没有任何效果。为什么
c2
没有收到任何DragEvent
? 最佳答案
startFullDrag()
将触发MouseDragEvents,但不会触发DragEvents。
将addEventFilter(DragEvent.DRAG_ENTERED, ... );
替换为addEventFilter(MouseDragEvent.DRAG_ENTERED, ... );
关于java - JavaFX8 startFullDrag()无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36160025/