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 ...
}