我有一个包含很多矩形的 Hbox。当我按下 Hbox 中的一个节点时,我希望它告诉我该矩形在 observablelist 中的什么位置,我该如何实现这一点?
下面是一个尝试(但是没有成功)
figureRowBox.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
for (Node n : figureRowBox.getChildren()) {
if (n.isPressed()) {
System.out.println(figureRowBox.getChildren().indexOf(n));
}
}
}
});
其中 figureRowBox 是一个 Hbox
最佳答案
这是我用来确定在 HBox 中按下了哪个节点的 HitTest 例程:
final HBox images = new HBox(10);
...
imageView.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent mouseEvent) {
final Object selectedNode = mouseEvent.getSource();
final int selectedIdx = images.getChildren().indexOf(selectedNode);
label.setText(
"Selected Vehicle: " + (selectedIdx + 1)
);
}
});
这里是 complete sample code 的链接:
关于java - 在 Hbox 中找到按下的节点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16137140/