2016-03-22 3 views
0

Я хочу связать два круга, перетащив &.JavaFX8 startFullDrag() не работает

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?

ответ

0

startFullDrag() будет вызывать MouseDragEvents, но не DragEvents.

заменить addEventFilter(DragEvent.DRAG_ENTERED, ...); на addEventFilter(MouseDragEvent.DRAG_ENTERED, ...);

Смежные вопросы