JavaFX - 如何 Select 特定形状?

JavaFX - How To Select A Specific Shape?

假设我有以下两个矩形,我想删除一个:

我知道如何实现删除按钮的方法,但是我不知道如何通过鼠标单击在形状之间select。有人可以告诉我一些 guidelines/examples 我将如何处理这个问题。谢谢

编辑 - 构建矩形的位置:

if (treeview.getSelectionModel().getSelectedItem() == greenrect) {
                Rectangle rect = drag.createDraggableRectangle(200, 60, 200, 60);
                ObjectProperty<Point2D> mousePosition = new SimpleObjectProperty<>();
                GraphicsContext gc = canvas.getGraphicsContext2D();
                rect.setFill(Color.GREEN);
                container2.getChildren().addAll(rect);
                }

像这样在两个形状上使用相同的事件:

private List<Shape> selectedShapes = new ArrayList<>();
@FXML
public void onShapeSelected(MouseEvent e) {
  Shape shape = (Shape) e.getSource();

  if (!selectedShapes.contains(shape)) {
    selectedShapes.add(shape);
  }
}

@FXML 
public void delete(ActionEvent e) {
   // delelte all the shapes from selected shapes list
}

我在这里所做的是将选定的节点保存在列表中,当用户按下删除键时,您将能够删除所有选定的节点。 我还建议您将选定的样式添加到选定的形状,以通知用户他选择了该形状,并且当用户 re-press 在该形状上时,您可以从列表中删除该形状(不要忘记也删除所选样式)