我有一个滚动的图片,可以拖到我场景中的另一个窗格上(可以选择一个图像)。唯一的问题是它们都必须在控制器类中共享相同的dragNdrop方法。我知道每个可注入节点的fx:id必须是唯一的,所以在JavaFX中有另一种解决方法吗?
我甚至尝试将我的图像添加到控制器类中的ArrayList,创建一个迭代器来遍历dragNdrop方法中的每个,但它不起作用(出于某种原因给我一个NullPointerException)。任何建议将不胜感激。
答案 0 :(得分:0)
根本不需要注入节点。如果您检测到拖放手势,则可以使用Event.getTarget()
从Event
获取触发该事件的节点。在这里,我假设只有ImageView
s才能成为简单的目标:
@FXML
private void dragDetected(MouseEvent event) {
ImageView target = (ImageView) event.getTarget();
// do something ...
}