2010-05-16 16 views
7

Czy możliwe jest podwójne buforowanie (w java) z awt? Obecnie jestem świadomy, że swing nie powinien być używany z awt, więc nie mogę używać BufferStrategy i whatnot (mam już napisany kod, którego nie chcę przepisywać w swing).Podwójne buforowanie z awt

Jeśli podwójne buforowanie jest możliwe z awt, czy muszę ręcznie zapisywać bufor? W przeciwieństwie do swing'a, awt nie ma takiej samej wbudowanej funkcji podwójnego buforowania.

Jeśli muszę napisać kod ręcznie, czy jest dobry tutorial do obejrzenia? Czy jest to po prostu łatwiejsze/zalecane dla początkującego programisty użycie zamiast tego huśtawki?

Przepraszamy za pytanie wieloetapowe. Dziękuję za poświęcony czas :)

Odpowiedz

6

Można to łatwo znaleźć w Internecie. Po prostu wyszukaj "double buffer awt", a znajdziesz DUŻO przykładów. Możesz nawet zobaczyć an old example Napisałem się w 1998 roku w Javie 1.0 AWT. Wystarczy utworzyć instancję własnego obiektu graficznego i narysować obraz, a następnie zlać go na płótno. Oto kluczowy fragment kodu w moim przykładzie:

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

Powiedziałbym, że wskazane jest ponowne użycie zamachu, jeśli to możliwe. – aioobe

+0

Och kochanie, nie mogę uruchomić kodu, ponieważ nie ma metody newStuff(). D: – exodrifter

+0

@DDP: huh, cóż, to dziwne. Oczywiście nie próbowałem skompilować tego kodu od dekady ... Skompilowany kod działa jako aplet tutaj: http://www.astro.wisc.edu/~dolan/java/Constellations.html, więc źródło I link nie może być właściwą wersją. –