java jframe doublebuffered

java - BufferStrategy vs DIY Double Buffering en JFrame



doublebuffered (2)

Recomiendo leer Pintura en AWT y Swing si no lo has hecho.

No creo que por lo general necesites doble almacenamiento en búfer de Do-It-Yourself si estás utilizando JFrame. Swing ha incorporado un doble buffer que está activado por defecto. Hacerlo manualmente solo reducirá las cosas. Puede verificar si el doble buffer está activado llamando a isDoubleBufferingEnabled () en cualquiera de sus JComponents.

Hay casos en los que puede querer hacer esto usted mismo, pero esa debería ser la excepción y no la regla. Tal vez estás haciendo algo complicado, como escribir un juego, en cuyo caso tal vez mi consejo no se aplique. De todos modos, espero que lo anterior sea información útil.

Hasta ahora, he hecho doble almacenamiento en memoria intermedia creando e Imagen, dibujando lo que quería a esa Imagen usando su objeto Gráficos asociado y luego dibujando esa Imagen a la pantalla usando el objeto Gráficos del método de pintura. Recientemente, aprendí sobre la clase BufferStrategy y sus usos. Me preguntaba cuáles son los pros y los contras de los dos métodos.

EDITAR: No creo que hice mi pregunta muy clara. Quería saber los pros / contras del método de bricolaje y la estrategia BufferStrategy y cuándo, si alguna vez, debería usar uno u otro.


Siempre he tenido buenos resultados al usar BufferStrategy por defecto BufferStrategy cuidado de

  • Construya siempre componentes GUI en el EDT
  • Nunca saque un hilo, excepto el EDT

Este excelente ejemplo debe duplicar el búfer porque se basa continuamente en el hilo inicial en lugar del EDT . Por el contrario, este ejemplo bastante ocupado se basa en nada más que repaint() a repaint() llamado en respuesta a un Timer oscilación. Raramente necesito un buffer fuera de pantalla excepto por un compuesto . Finalmente, este artículo tutorial ofrece más pautas.