FlowPane(JavaFX)中子级的坐标

FlowPane(JavaFX)中子级的坐标,java,javafx,fxml,Java,Javafx,Fxml,我正试图编写一个GUI,在一个流窗格中显示五个矩形,以便用户可以单击它们来选择一个字符 我使用以下方法测试用户是否在矩形内单击: @FXML private Rectangle characterA, characterB, characterC, characterD, character E; private List<Rectangle> rects; @FXML private void initialize() { rects = Arrays.asList(c

我正试图编写一个GUI,在一个流窗格中显示五个矩形,以便用户可以单击它们来选择一个字符

我使用以下方法测试用户是否在矩形内单击:

@FXML
private Rectangle characterA, characterB, characterC, characterD, character E;

private List<Rectangle> rects;

@FXML
private void initialize() {
    rects = Arrays.asList(characterA, characterB, characterC, characterD, character E);
}

@FXML
private void onMousePressed(MouseEvent e) {
    Rectangle rect;
    for (int i = 0; i < rects.size(); i++) {
        rect = rects.get(i);
        if (rect.contains(e.getSceneX(), e.getSceneY())) {
            System.out.println("Clicked in rect " + i);
        }
    }
}
我的问题是:虽然在屏幕上,矩形彼此并排排列,但它们的坐标显然是相同的。在第一个矩形上单击会产生在矩形x中单击的五个副本,而在其他地方单击则不会产生任何输出


如何正确确定用户单击的矩形?

r1、r2和r3,但未定义。哎呀,更新了我代码片段的一部分,而不是其余部分。您不能只使用矩形本身而不是流窗格注册鼠标侦听器吗?