2017-01-22 15 views
0

Предположим, у меня есть следующие два прямоугольника, и я хотел, чтобы удалить один: enter image description hereJavaFX - как выбрать конкретную форму?

Я знаю, как реализовать метод удаления кнопки, но я не знаю, как я могу выбрать между формами через мыши. Может кто-то, пожалуйста, дайте мне некоторые рекомендации/примеры того, как я буду заниматься этим. Благодаря

Edit - Где построить прямоугольник:

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); 
       } 

ответ

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 
} 

Что я сделал здесь, чтобы сохранить выбранные узлы внутри список, и когда пользователь нажмет кнопку «Удалить», вы сможете удалить все выбранные узлы. Я также рекомендую вам добавить выбранный стиль к выбранной форме для уведомления пользователя о том, что он выбрал форму, и когда пользователь снова нажимает на фигуру, вы можете удалить фигуру из списка (не забудьте также удалить выбранный стиль)

+0

Эй, спасибо за ваш ответ. Что бы «! SelectedShapes» было? .. Спасибо – TheBeliever12

+0

Список массивов форм, например – Zoltanik

+0

Я вижу, что вы делаете. Отлично! не могли бы вы рассказать мне, как я могу использовать метод для моего прямоугольника ?. Я добавил код, где я инициализирую зеленый прямоугольник. Код показывает, как я добавляю прямоугольник в свою панель из твистиста. Спасибо: D – TheBeliever12