use super.paintComponent (g) ou getGraphics () em java
estou um pouco confuso sobre algumas coisas:
Código de exemplo, que mostra o meu problema, isso não é compilável
// 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);
}
}
Eu crio um objeto globalGraphic2D
e eu desenho coisasrender()
Eu não ligorepaint()
dentro do loop do jogo,é uma boa prática fazer isso?
Devo usarrepaint()
dentro do meu loop, e opaintComponent()
função?
outra coisa, comographic.dispose()
funciona corretamente? , porque, ao tentar remover esta linha de código, nada acontece.
Entendo como funciona o dispose () de acordo com o java docs, mas eu não notei nenhuma diferença com dispose () ou sem.
meu programa roda muito bem, mas tenho essas dublagens.