JavaFX-如何使用相同的控制器功能处理多个图像

JavaFX-How to deal with multiple images using same controller function

我有一个充满图像的滚动窗格,可以将其拖到场景中的另一个窗格中(可以选择一个图像)。唯一的问题是它们都必须在控制器 class 中共享相同的 dragNdrop 方法。我知道每个可注入节点的 fx:id 必须是唯一的,那么在 JavaFX 中是否还有另一种解决方法?

我什至尝试将我的图像添加到控制器中的 ArrayList class,创建一个迭代器以循环遍历 dragNdrop 方法中的每个图像,但它不起作用(出于某种原因给我一个空指针异常)。任何建议将不胜感激。

根本不需要注入节点。如果检测到拖放手势,则可以使用 Event.getTarget()Event 获取触发事件的节点。为简单起见,这里我假设只有 ImageViews 可以作为目标:

@FXML
private void dragDetected(MouseEvent event) {
    ImageView target = (ImageView) event.getTarget();
    // do something ...
}