我知道如何实现删除按钮方法,但是我不知道如何通过鼠标单击在形状之间进行选择。有人可以给我一些指导方针/例子,告诉我如何解决这个问题。感谢
编辑 - 构建矩形的位置:
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);
}
答案 0 :(得分:1)
在这两个形状上使用相同的事件:
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
}
我在这里做的是将所选节点保存在列表中,当用户按下删除时,您将能够删除所有选定的节点。 我还建议您将所选样式添加到所选形状,以通知用户他选择了形状,当用户重新按下形状时,您可以从列表中删除形状(不要忘记也删除所选的样式)