大家好,我这里有个小问题。我有一个面板,我正在画一个字符串。这是一个游戏,所以我一直在重新绘制分数以更新它。然而,当我再次绘制它时,它被绘制在之前的分数之上,所以它看起来都是乱码。任何想法如何解决这一问题?
comp2d.drawString(GetScore(Score),ScoreX,ScoreY);
大家好,我这里有个小问题。我有一个面板,我正在画一个字符串。这是一个游戏,所以我一直在重新绘制分数以更新它。然而,当我再次绘制它时,它被绘制在之前的分数之上,所以它看起来都是乱码。任何想法如何解决这一问题?
comp2d.drawString(GetScore(Score),ScoreX,ScoreY);
在绘制字符串之前,您需要重绘背景。如果这是一个普通的面板,你可以通过调用super.paintComponent(g)
自己的来重绘背景paintComponent
;但是,由于这是一款游戏,我猜你还有其他需要绘制的背景。另外,如果可能的话,我建议您使用JLabel来代替使用drawString
命令。
您可以尝试在 comp2d.drawString() 之后使用 repaint()。
当你调用这个命令时:
comp2d.drawString(GetScore(Score),ScoreX,ScoreY);
你应该这样称呼:
comp2d.dispose()
因为所有与 comp2d 的操作都将在之后应用 .dispose()