java - 在 Hbox 中找到按下的节点的位置

标签 java javafx

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

selected vehicle

关于java - 在 Hbox 中找到按下的节点的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16137140/

相关文章:

java - 当我在Android Studio或IntelliJ IDEA中更改方法签名时如何设置JavaDoc自动更新

java - 从数据库中选取数据时的动态 ListView 或 TextView

java - 在 NetBeans 8 中封装 JavaFX 属性?

3d - 将 3D 对象鼠标拖动移动限制到 JavaFX 中的平面

TableColumn 中的 JavaFX 格式 double

java - Android 谷歌地图致命异常

java - 添加/删除请求 URL 的参数

JavaFX Builder 1.0 无法打开文件

java - 使用 JNativeHook 制作游戏

java - Spring、JavaConfig、BeanDefinition 和空的 getBeanClassName