Java/Java
[자바 애플릿] 더블버퍼링 예제
bboks.net
2007. 6. 19. 12:11
import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; import java.awt.Image; public class TestDoubleBuffer extends Applet implements Runnable { int x, y; boolean posX, posY; Image offImg; Graphics gc; Thread thr; public void init() { this.x = 0; this.y = 0; this.posX = true; this.posY = true; } public void start() { offImg = this.createImage(this.getWidth(), this.getHeight()); gc = this.offImg.getGraphics(); this.thr = new Thread(this); this.thr.start(); } public void destroy() { } public void stop() { } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { g.drawImage(this.offImg, 0, 0, this); } public void paintComp(Graphics g) { g.setColor(Color.GREEN); g.fillRect(0, 0, this.getWidth(), this.getHeight()); g.setColor(Color.WHITE); g.fillOval(x, y, 30, 30); } public void run() { while (true) { this.paintComp(this.gc); try { if (this.posX) this.x += 3; else this.x -= 3; if (this.posY) this.y += 3; else this.y -= 3; if (x + 30 > this.getWidth()) this.posX = false; if (y + 30 > this.getHeight()) this.posY = false; if (x < 0) this.posX = true; if (y < 0) this.posY = true; Thread.sleep(25); } catch (Exception e) { } this.repaint(); } } }