2017-02-02 2 views
0

현재 장면에 직사각형을 추가 할 수있는 프로그램이 있습니다. 이것들은 선택, 회전, 크기 변경 및 삭제할 수 있습니다. 직사각형을 선택하고 회전을 클릭하면 다른 직사각형을 추가하고 회전을 클릭하면 여전히 작동합니다. 그러나, 내가 사각형을 '삭제'하면 다른 하나를 더 이상 추가 할 수 없으며 더 이상 추가 할 수 없습니다.모양을 삭제 한 후 .. 더 이상 회전시킬 수 없습니다 .. - JavaFX

나는이 다음 필드와 두 가지 방법 :

private List<Node> selectedShapes = new ArrayList<>(); 
private double angle[] = {0}; 

@FXML 
private AnchorPane container2; 

회전 :

public void rotateObject(ActionEvent event) throws IOException{ 
    angle[0] = angle[0] + 45; 
    selectedShapes.get(0).setRotate(angle[0]); 
} 

삭제

public void deleteButton(ActionEvent e) { 
    deletebutton.setOnAction(a -> container2.getChildren().removeAll(selectedShapes)); 
    selectedShapes.remove(0); 
} 

내가 선생을 선택하거나 삭제 느낀다 부정확 한 방식으로 도형을 입혔다. 누군가 현재 품목을 선택하는 올바른 방법이 무엇인지에 관해 안내 할 수 있습니까? 그래서 사각형 중 하나를 지우면 다른 하나는 여전히 회전 가능해야합니다. ,

List<Shape> selectedShapes = new ArrayList<>(); 

그리고 당신의 문제에 대한

, 당신은 배열 angle[]를 사용 : 감사

답변

0

당신은 사각형 목록을 만들려면, 그래서 대신 기본 클래스 Node을 통해가는 이유는 바로 사각형/모양의 목록을 사용하지 이 일을 연장 할 수없고, 거기 당신은 (내가 잘못 아니에요 경우)에만 인덱스 0, 내가이 배열이 너무 거기에 목록을 사용하여 해결하기 위해 각 Rectangle의 각도를 저장하는 것을 이해 전화 :

List<Double> angle = new ArrayList<>(); 

A 마지막으로 목록에 자신을 찾기 위해 ND, (삭제시)을 (추가시)이 증가 INT와 감소를 사용

int Index = 0; 

편집 : 가 여기 간단한 방법을 프로젝트를 조직 할 때 따라야 할 프로젝트 :

private List<Rectangle> recs = new ArrayList<>(); 
private final double width = 50, height = 50; 
private final double x = 200, y = 200; 


public void add(){ 

    recs.add(new Rectangle(x, y, width, height)); 
    /*Properties of your rectangle (fill,shape...)*/ 

} 

public void delete(int deleteIndex){ 

    /*Here the root is the container of your Rectangles*/ 
    root.getChildren().remove(recs.get(deleteIndex)); 
    recs.remove(deleteIndex); 

} 

public void rotate(int recIndex, double angle){ 

    recs.get(recIndex).setRotate(recs.get(recIndex).getRotate()+angle); 

} 

행운을 빈다.

+0

안녕하세요, 회신 해 주셔서 감사합니다. 그래서 어떻게 내 rotate/delete 메서드에서 이것을 쓸 것입니다. 감사합니다 – TheBeliever12

+0

내 대답이 편집되었습니다! –

+0

방금 ​​삭제 방법을 사용해야했고 정확히 원하는대로 작동하게되었습니다. 대단히 감사합니다 보! – TheBeliever12