首页 > 解决方案 > JavaFX - 单击二维数组中的内容时获取索引

问题描述

我已经构建了一个 ImageView 的二维数组,我希望能够在单击它时打印出 ImageView 的索引(并使用该信息来更改图片)。

我现在有以下代码,但我不知道如何让它在二维数组中打印其位置的 x 和 y 值。

ImageView[][] mainGrid = new ImageView[8][8]; 

...

for (int x = 0; x < 8; x++) {
    for (int y = 0; y < 8; y++) {
        mainGrid[x][y] = new ImageView(image);
        mainGrid[x][y].setOnMouseClicked(createMouseHandler());
    }
} 

...

private EventHandler<? super MouseEvent> createMouseHandler() {
    return event -> {
        System.out.println("Clicked");
    }
}

任何帮助是极大的赞赏!谢谢!

标签: arrayseventsjavafxonclickimageview

解决方案


这个问题最通用的解决方案是使用 Node 类的getProperties()方法。您可以使用它将任何用户信息存储在您喜欢的节点中,然后在需要时检索它。在您的情况下,存储索引,然后在鼠标处理程序中检索它们。


推荐阅读