2017-01-22 6 views
0

가정하자 나는 다음과 같은 두 사각형을 가지고 있고 하나를 삭제하고 싶었 : enter image description hereJavaFX - 특정 모양을 선택하는 방법

나는 삭제 버튼 메소드를 구현하는 방법을 알고, 그러나 나는 마우스 클릭을 통해 모양 선택할 수 있습니다 방법을 모르겠어요. 누군가가 나에게 이것에 대해 어떻게 갈 것인지에 대한 지침/예를 들려 주시겠습니까? 감사합니다

편집 - 나는 사각형 건설 장소 :

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

나는 당신의 행동을 봅니다. 그거 좋네! 내 사각형에 대해이 방법을 사용할 수있는 방법을 알려주시겠습니까? 초록색 사각형을 초기화하는 코드를 추가했습니다. 이 코드는 treelist에서 사각형에 내 창을 추가하는 방법을 보여줍니다. 감사 : D – TheBeliever12