2010-05-16 5 views
7

awt로 이중 버퍼링 (java로 가능)이 가능합니까? 현재 스윙을 awt와 함께 사용해서는 안된다는 것을 알고 있으므로 BufferStrategy 및 기타 등등을 사용할 수 없습니다. 스윙에서 다시 쓰고 싶지 않은 awt로 작성된 코드가 이미 있습니다.awt로 이중 버퍼링

awt에서 이중 버퍼링이 가능하면 버퍼를 직접 작성해야합니까? 스윙과 달리 awt는 동일한 내장 이중 버퍼링 기능을 갖고있는 것 같지 않습니다.

코드를 직접 작성해야하는 경우 살펴볼 좋은 튜토리얼이 있습니까? 아니면 초보자 프로그래머가 스윙을 사용하는 것이 더 쉽고/권장 할 만합니까?

여러 단계 질문에 대해 죄송합니다. 시간 내 주셔서 감사합니다.

답변

6

이것은 웹에서 쉽게 답변 할 수 있습니다. "double buffer awt"를 검색하면 많은 예제를 찾을 수 있습니다. an old example 자바 1.0 AWT에서 1998 년 자신을 썼습니다. 자신 만의 Graphics 객체를 인스턴스화하고 Image로 그려야하고 그 이미지를 캔버스에 블렌딩하면됩니다. 여기에 예제에서 중요한 코드가 있습니다.

public void paint(Graphics g) { 
    if (doubleBuffer) { 
     paintSky(top.gBuf); 
     g.drawImage(top.buf, 0, 0, this); 
    } else { 
     paintSky(g); 
    } 
    } 
+1

가능한 경우 스윙 구현을 재사용하는 것이 좋습니다. – aioobe

+0

아, 새 코드() 메서드가 없기 때문에 코드를 실행할 수 없습니다. D : – exodrifter

+0

@DDP : 허, 그게 이상 하네. 분명히 나는 ​​그 코드를 10 년 안에 컴파일하려하지 않았다 ... 컴파일 된 코드는 애플릿으로 여기에서 실행되고있다 : http://www.astro.wisc.edu/~dolan/java/Constellations.html 그래서 나는 소스 링크가 올바른 버전이 아니어야합니다. –