javaFX обработка событий

День добрый. Пытаюсь написать программу с графическим интерфейсом. Необходимо при нажатии кнопки добавить объект который будет следовать за курсором мыши и при клике левой кнопкой устанавливаться по данным координатам. Как это осуществить в плане обработки событий?

public class MainWindowController {

    @FXML
    private Pane mainPane;

    @FXML
    private Button button_addNewConsumer; //кнопка добавление нового объекта

    @FXML
    private void action_Button_addNewConsumer() {
    }

    @FXML
    void initialize() {
    }
}

Можно ли создать свой обработчик событий по типу(и если можно то как):

нажали кнопу button_addNewConsumer{
    while(не нажали на мышь){
        следить за курсором и менять положение объекта
        if(нажата ESC) return;
    }
    создать новый объект с координатами курсора
}

или нужно встраивать куски в каждый из обработчиков

в setOnMouseMoved{
if(кнопка добавления объекта была нажата){
двигать объект за курсором}
}


в setOnMouseClick{
if(кнопка добавления объекта была нажата){
присвоить новые координаты объекта и отменить перемещение объекта
}
}

Ответы (1 шт):

Автор решения: Barmaley Red Star

Безусловно 2-й вариант. В аргументе onMouseMove приходит MouseEvent, в котором можно отловить клики/драги/движения.

В action_button в аргументах приходит только ActionEvent - он пустой, вы по нему ничего не отловите.

→ Ссылка