Двойная буферизация с awt

возможна ли двойная буферизация (в java) с помощью awt? В настоящее время я знаю, что swing не должен использоваться с awt, поэтому я не могу использовать BufferStrategy и еще много чего (у меня уже есть код, написанный в awt, который я не хочу переписывать в swing).

Если двойная буферизация возможна с awt, должен ли я писать буфер вручную? В отличие от swing, awt, похоже, не имеет такой же встроенной возможности двойной буферизации.

Если мне нужно написать код вручную, есть ли хороший учебник посмотреть? Или это просто проще/целесообразно для начинающего программиста использовать swing вместо этого?

извините за многоступенчатый вопрос. Спасибо за ваше время :)

1 ответов


на это легко ответить в интернете. Просто найдите "двойной буфер awt", и вы найдете много примеров. Вы даже можете видеть старый пример Я написал себя в 1998 году в Java 1.0 AWT. Вам просто нужно создать экземпляр собственного графического объекта и нарисовать изображение, а затем Блит это изображение в холст. Вот ключевой бит кода в моем примере:

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