(JAVAFX)如何获得FXML中定义的imageview的“id”或“name”?

时间:2014-08-13 08:59:48

标签: java image javafx imageview fxml

我想获得在FXML中定义的imageview的id或名称。

imageview的ID或名称类似于' img001'。

当我拨打' getid()'

Imageview tempImg = (ImageView) event.getTarget();
targetNode = new Node();
targetNode.setImage(tempImg.getImage());

System.out.println(targetNode.getId());

结果为空。

在FXML中,

<MyNode id="impo" fx:id="impo" fitHeight="48.0" fitWidth="52.0" focusTraversable="true" 
    layoutX="53.0" layoutY="12.0" onMouseDragged="#addNode" onMousePressed="#addNode" 
    onMouseReleased="#addNode" pickOnBounds="true" preserveRatio="true">
    <image>
       <Image url="@../../../../../../img/icon_data_add.png" />
    </image>
</MyNode>

MyNode是从ImageView类扩展的。

我怎样才能获得身份证??

1 个答案:

答案 0 :(得分:0)

问题是您正在创建一个未附加到FXML的新Node

targetNode = new Node(); //Not what you want

如果您的ImageView在FXML中定义了ID,则可以使用getId()方法访问它

tempImg.getId();

如果您想获取包裹ImageView(示例中为MyNode)的节点的ID,可以调用getParent()方法。

tempImg.getParent().getId();