Работа функции setOnMouseDragEntered в JavaFX

136
05 января 2021, 08:00

Имеется код:

Pane box = new Pane();
box.setPrefSize(100, 100);
box.setStyle("-fx-background-color: #3E938B;");
box.setOnMouseDragged(event-> {
    box.relocate(event.getSceneX(), event.getSceneY());
});

Pane notbox = new Pane();
notbox.setPrefSize(100, 100);
notbox.setStyle("-fx-background-color: #000000;");
notbox.relocate(200, 200);
notbox.setOnMouseDragEntered(event-> {
    System.exit(0);
});

По логике, при перетаскивании box на notbox должно выполняться прописанное в setOnMouseDragEnteredдействие, но, почему-то, ничего не происходит. Объясните, почему ивент не срабатывает? В чем моя ошибка? Какая логика работы у данных ивентов?

Answer 1

Для того что бы setOnMouseDragEntered сработало, необходимо запустить полный жест перетаскивания("press-drag-release") - startFullDrag().

Pane box = new Pane();
box.setPrefSize(100, 100);
box.setStyle("-fx-background-color: #3E938B;");
box.setOnMouseDragged(event-> {
    box.relocate(event.getSceneX(), event.getSceneY());
});
box.setOnDragDetected(event -> {
    box.startFullDrag();
});

Pane notbox = new Pane();
notbox.setPrefSize(100, 100);
notbox.setStyle("-fx-background-color: #000000;");
notbox.relocate(200, 200);
notbox.setOnMouseDragEntered(event-> {
    System.exit(0);
});
READ ALSO
Не работает инициализация БД

Не работает инициализация БД

Я инициализирую базу через flyway, после чего, если приложение запущено локально, мне нужно накатить скрипты с тестовыми даннымиFlyway отрабатывает...

121
Не удаётся получить длинну VKUsersArray

Не удаётся получить длинну VKUsersArray

VKUsersArray назвал VKFЗнаю, что можно получить значение через VKF

123
Java | Хранение экземпляра класса

Java | Хранение экземпляра класса

Делаю бота для Telegram на JavaПри разработке столкнулся с тем, что система хранит где-то объект и отправляет его параметры несмотря на то, что объект...

144