3

多くの長方形を含む Hbox があります。Hbox 内のノードの 1 つを押すと、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 に答える