我试图编写一个在FlowPane
中显示五个矩形的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);
}
}
}
我的问题是:虽然在屏幕上,矩形是彼此并排放置的,但它们的坐标显然都是一样的。单击第一个矩形会产生五个副本&#34;在rect x&#34;中单击,而在其他位置单击则不会输出任何输出。
如何正确确定用户点击的矩形?