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 在该形状上时,您可以从列表中删除该形状(不要忘记也删除所选样式)
假设我有以下两个矩形,我想删除一个:
我知道如何实现删除按钮的方法,但是我不知道如何通过鼠标单击在形状之间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 在该形状上时,您可以从列表中删除该形状(不要忘记也删除所选样式)