Лучший способ сделать это - создать другое изображение того же размера, что и ваш апплет, нарисовать его и затем в вашем методе рисования / обновления скопировать содержимое этого изображения в графический объект. Вы должны убедиться, что вы не обновляете другое изображение, когда рисуете в апплет, иначе это вызовет мерцание. Рисование, вероятно, должно быть сделано и в другом потоке, просто чтобы немного легче понять.
У меня нет доступа к моему коду, поэтому может быть немного не так (и код может быть не самым эффективным):
public class MyApplet extends Applet {
Image offscreen;
boolean pageFlipped = false;
Thread drawingThread;
public void init() {
offscreen = createImage(this.getWidth(), this.getHeight());
drawingThread = new Thread(new DrawingLoop());
drawingThread.start();
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
if (!pageFlipped) {
g.drawImage(offscreen, 0, 0);
pageFlipped = true;
}
}
class DrawingLoop implements Runnable {
public void run() {
while (true) {
Graphics g = offscreen.getGraphics();
if (pageFlipped) {
// do your graphics code here
pageFlipped = false;
}
}
}
}
}
Надеюсь, это поможет!
1008 * Дан *