2010-04-12 3 views
0

안녕하세요, 저는 여기에 약간의 문제가 있습니다. 내가 문자열을 그리는 패널이 있습니다. 이것은 게임이므로 업데이트하기 위해 점수를 다시 그려 넣습니다. 그러나 내가 다시 그릴 때 그것은 이전 점수의 위에 그려 지므로 모든 것이 깨져 보였습니다. 어떤 아이디어가 이것을 고치는 방법?Java Graphics2D DrawString

comp2d.drawString (GetScore (Score), ScoreX, ScoreY));

+2

이 패널의 배경이 해제되지 않는 것 같은데 후에 적용되기 때문에 다시 그리기 프로세스 중. 다시 그리는 방법에 대한 자세한 내용 (코드)을 제공 할 수 있다면 문제의 해결 방법을 찾을 수 있습니다. – Ash

답변

5

문자열을 그리기 전에 배경을 다시 그려야합니다. 일반 패널 인 경우 자신의 paintComponentsuper.paintComponent(g)으로 전화하여 배경을 다시 그릴 수 있습니다. 그러나 이것이 게임이기 때문에, 나는 당신이 그릴 필요가있는 다른 배경을 가지고 있다고 생각할 것입니다. 또한 가능한 경우 drawString 명령을 사용하는 대신 JLabel을 사용하는 것이 좋습니다.

+2

+1, 왜 사람들이 JLabel을 사용할 수있을 때 패널에 문자열과 이미지를 그리는 것처럼 사용자 정의 페인팅을 계속하려고하는지 모르겠습니다. 적절한 레이아웃 관리자를 사용하면이 모든 작은 그림의 세부 사항에 대해 걱정할 필요가 없습니다. – camickr

+0

예 JLabel을 사용해 보았습니다.하지만 그 이유를 추가하면 다른 모든 것이 사라집니다. – user69514

0

comp2d.drawString() 다음에 repaint()를 사용해 볼 수 있습니다.

+0

전에 시도했지만 행운이 없었습니다 – user69514

0

이 COMAND를 호출 할 때 : 는 comp2d.drawString(GetScore(Score),ScoreX,ScoreY);

이 작업을 호출해야합니다 : comp2d.dispose()

을 comp2d 모든 작업이 .dispose()

+0

** 리뷰 큐 **에서 : 귀하의 답변에 대해 더 많은 컨텍스트를 추가해 주시기 바랍니다. 코드 전용 답변은 이해하기 어렵습니다. 그것은 당신이 당신의 포스트에있는 정보를 더 추가 할 수있는 경우에 둘 다 구경꾼 및 미래 독자를 도울 것이다. – RBT