JavaFX- как работать с несколькими изображениями, используя одну и ту же функцию контроллера

У меня есть полоса прокрутки, полная изображений, которые можно перетащить на другую панель в моей сцене (можно выбрать одно изображение). Единственная проблема заключается в том, что все они должны использовать один и тот же метод dragNdrop в классе контроллера. Я знаю, что fx:id должен быть уникальным для каждого инъецируемого узла, так есть ли другой способ обойти это в JavaFX?

Я даже пытался добавить свои изображения в ArrayList в классе контроллера, создавая итератор для циклического просмотра каждого из них в методе dragNdrop, но он не работает (по какой-то причине я получил исключение NullPointerException). Любые предложения будут ценны.

1 ответ

Решение

Нет необходимости вводить узлы вообще. Если вы обнаружите жест Drag&Drop, вы можете получить узел, который вызвал событие из Event с помощью Event.getTarget(), Здесь я предполагаю только ImageView s может быть целью для простоты:

@FXML
private void dragDetected(MouseEvent event) {
    ImageView target = (ImageView) event.getTarget();
    // do something ...
} 
Другие вопросы по тегам