используйте super.paintComponent (g) или getGraphics () в Java
Я немного запутался в нескольких вещах:
Пример кода, который показывает мою проблему, это не компилируется
// 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);
}
}
Я создаю глобальный объектGraphic2D
и я рисую вещи вrender()
Я не звонюrepaint()
внутри игрового цикла,это хорошая практика, чтобы сделать это?
Должен ли я использоватьrepaint()
внутри моей петли, иpaintComponent()
функция?
еще одна вещь, какgraphic.dispose()
работает правильно? , потому что, пытаясь удалить эту строку кода, ничего не происходит.
Я понимаю, как работает dispose () в соответствии с Java документами, но я не заметил различий с dispose () или без.
моя программа работает очень хорошо, но у меня есть эти дубли.