3

我有一个包含很多矩形的 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

4

1 回答 1

2

这是我用来确定在 HBox 中按下了哪个节点的命中测试例程:

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)
    );
  }
});

这是完整示例代码的链接:

选择的车辆

于 2013-04-21T23:30:53.433 回答