디자인 프로젝트가 있는데, 마우스를 사용하여 자바로 지그재그를 그려야합니다. 우선, 내가 사용하고의 MouseListener와의 mouseClicked 방법에, 나는 사용자가 클릭하는 모든 포인트를 수집 : 여기 자바에서 지그재그 그리기
public void mouseClicked(MouseEvent e){
if(isAbleToDraw){
corners[points]=e.getPoint();
points++;
repaint();
}
}
나는 사용자가 ""그리기 "를 클릭 여부를 확인하기 위해 부울"isAbleToDraw "를 사용 그리기 중지 "버튼을 클릭하십시오. 그리고, 나는이 같은 지그재그을 그릴 : 그것을 내가 클릭 할 때
super.paintComponent(graph);
Graphics2D g = (Graphics2D) graph;
g.drawLine(corners[i].x, corners[i].y, corners[i+1].x, corners[i+1].y);
마지막으로, 문제는, 지그재그을 그린 후 버튼 "을 그리기 중지"를 선택한 후 다시 버튼을 "그리는"를 클릭 한 후 왼쪽 끝에서 선을 그립니다. 즉, 나는 2 개의 다른 지그재그를 그릴 수 없다.
문제를 해결하는 방법에 대한 아이디어가 있으십니까?
그것은 큰 프로젝트입니다. 단지 작은 부분 일뿐입니다. :) 그렇습니다. 배열을 지우지는 않지만 할 때 더 이상 선을 그리지 않고 null 포인터 예외를 던질 것입니다? – ozgen
NPE는 배열을 역 참조하기 전에 배열이 비어 있는지 점검하여 피할 수 있습니다. 다른 선이 사라지는지 여부는 도면이 누적인지 또는 블랭킹인지에 따라 다릅니다. @ ninesided의 대답은 (더 복잡하지만) 더 나은 해결책입니다. –