use super.paintComponent (g) o getGraphics () en java
Estoy un poco confundido acerca de algunas cosas:
Código de ejemplo, que muestra mi problema, esto no es compilable
// image
private BufferedImage image;
private Graphics2D graphic;
private changeImage;
. . .
//thread loop
while (running) {
. . .
render();
Graphics showGraphic = getGraphics();
showGraphic.drawImage(image, 0, 0, null);
showGraphic.dispose();
}
public void render(){
if(changeImage == 1)
graphic.drawImage(ImageLoader.TREE, 0, 0, null);
else if(changeImage == 2){
graphic.drawImage(ImageLoader.HOUSE, 0, 0, null);
. . .
graphic.fillRect(50,60,30,40);
}
}
Creo un objeto globalGraphic2D
y dibujo cosas enrender()
No llamorepaint()
dentro del circuito del juego,¿Es una buena práctica hacer esto?
Debería usarrepaint()
dentro de mi bucle, y elpaintComponent()
función?
otra cosa, comographic.dispose()
funciona correctamente? , porque al intentar eliminar esta línea de código, no sucede nada.
Entiendo cómo funciona dispose () según java docs, pero no he notado ninguna diferencia con dispose () o sin él.
mi programa funciona muy bien, pero tengo esta duda.