首页 > 解决方案 > 从 ImageView 获取 id,如果 getId 然后与特定的 ImageView id 进行比较?

问题描述

我可以ImageView通过使用获取 id

ImageView iv = (ImageView)event.getSource();

并存储在字符串中

String userClickedImage = iv.getId();

但是你我可以与我已经在 fxml 中给出的 id 进行比较。ImageView在 fxml 文件中,我有三个具有三个不同 id 的图像。如下所示

<ImageView fx:id="iv_Rock" fitHeight="100" fitWidth="100"
           onMouseClicked="#selectImage"
           GridPane.columnIndex="0" GridPane.rowIndex="2" >
    <image >
        <Image url="@images/Rock.jpg"  />
    </image>
</ImageView>

以及我如何比较

iv.getId().equals(iv_Rock)

当我点击岩石图像时它不起作用,它应该给出结果,但它没有向我显示结果。

标签: javafx-8

解决方案


id属性包含一个字符串。因此,比较 id 的正确方法是

iv.getId().equals("iv_Rock")

由于您似乎将 注入ImageView到控制器中,因此简单地比较引用也应该有效:

event.getSource() == iv_Rock

不过,您应该考虑简单地使用 3 种不同的事件处理程序方法。这将消除检查来源的需要;通常,对于基于源的完全不相关的事情使用相同的事件处理程序方法并不是一个好主意。


推荐阅读