2014-04-22 3 views
0

Java (SWT)에서 애니메이션 그리기에 대한 질문이 있습니다. 일부 프로세스의 애니메이션을 그려 봅니다. canvas.redraw() 프로그램을 사용할 때 먼저 그려진 모든 것을 지우고 다시 그립니다. 내 프로그램이 시간 간격 당 약 1000 개의 직사각형을 그립니다 (이 큰 양은 필요합니다). 그래서 애니메이션이 부드럽게 보이지 않습니다. 항상 깜박입니다. 예를 들어, 오래된 객체 위에 새 객체를 페인트하는 등, 객체를 지우지 않고 더 부드럽게 보이게 할 수있는 방법이 있습니까?부드러운 애니메이션 (Java SWT)

+0

잘못하지 않으면 다시 호출 할 때마다 모든 것이 스크랩됩니다. – Infested

+0

컨트롤에 'SWT.NO_BACKGROUND' 스타일을 지정하십시오. –

답변

1

맞춤형 페인팅을 할 때 깜박 거리는 문제는 이중 버퍼링을 사용하는 것입니다. SWT Canvas 객체에는 이중 버퍼링 기능이 내장되어 있으므로 생성자의 스타일에 플래그를 추가하여 사용합니다.

Canvas myCanvas = new Canvas (parentComposite, SWT.DOUBLE_BUFFERED); 
+0

고마워요! 모든 것이 완벽하게 작동합니다. – instop

관련 문제