2013-11-29 2 views
0

저는 학위 과정의 일부로 Java를 배우고 있지만 매우 간단합니다.하지만 내가 무엇을해야할지 잘 알고 싶습니다.자바 - 특정 부분을 다시 칠하십시오.

지금까지 화면에 표시하려는 내용은 JPanelpaintcomponent 메서드에 넣습니다.

그러나 나는 결코 바뀌지 않는 레이아웃의 일부를 꺼내 왔으며 중간의 특정 것이 회전 만합니다. repaint()이라고하는 타이머가 있습니다.

변경되지 않는 구성 요소를 포함한 모든 항목이 제거 된 다음 다시 그려지고 모든 paintcomponent 메서드가 매번 실행되고 있다는 점을 바로 잡으면.

정적 물건을 밖으로 이동하는 방법/내가 한 번만 그려야 할 방법이 있어야합니다. 특히 다시 그리기를 원하는 부분 만 paintcomponent 메서드에 있어야합니다.

맞습니까? 아니면 완전히 이해하지 못하고 있습니까?

답변

2
  • 저는 paintComponent 메소드에 GUI 구성 요소를 추가하지 않는다고 가정합니다.
  • 다시 칠하는 동안 구성 요소가 "제거되지"않습니다.
  • 이미지의 안정된 부분을 단일 배경 BufferedImage에 넣고 paintComponent 메서드에서 BufferedImage를 그릴 것이 좋습니다. 이것은보다 효율적인 그림을 만들 수 있습니다.
  • 페인트 할 영역의 경계 사각형을 설정하는 repaint(...)의 오버로드를 호출하는 것이 좋습니다.
+0

내부 paintComponent는 필자의 Graphics stuff, filloval 및 변형 등입니다. 타이머는 변환 중 하나에서 각도로 사용되는 카운터를 증가시키고 있습니다.이 카운터는 변경되는 것이지만 그 밖의 모든 것은 다시 그려지지 않습니다 또한? – binarysmacker

+0

@binarysmacker : 예. 그래서 내 신상 기록을 고려해야합니다. –

관련 문제