Получить, если событие срабатывает сразу после другого события - PullRequest
0 голосов
/ 03 мая 2020

В настоящее время я программирую жест перетаскивания для карточной игры. Я хочу переместить карту из одной стопки в другую.

Сначала я определяю перетаскивание с помощью OnDragDetected, затем перемещаю карту в соответствии с фактическим положением мыши, пока мышь не будет отпущена. С тех пор есть два случая: либо карта была перетащена в другой стек, либо она была перетащена в пустоту.

Для первого случая другой стек вызовет событие mouseEntered, поэтому я могу справиться. Моя проблема в том, как определить второй случай?

Событие mouseEntered вызывается сразу после события onMouseReleased. Может быть, я могу проверить, есть ли одно событие непосредственно после другого, тогда это первый случай, в противном случае второй. Возможно ли что-то подобное?

public void onDragDetected(MouseEvent event) {
    ImageView card = (ImageView) event.getSource();

    root.setOnMouseDragged(e -> {
        //Move card according to actual mouse position
    });
    root.setOnMouseReleased(e -> {

    });
}
public void mouseEntered(MouseEvent event) {
    //Put card in new stack
    ImageView newCard = (ImageView)event.getSource();
    newCard.setImage(card.getImage());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...