2010-04-12 60 views
0

嘿傢伙我在這裏有一個小問題。我有一個繪製字符串的面板。這是一個遊戲,所以我不斷重新繪製分數以更新它。然而,當我再次繪製它時,它被繪製在先前的分數之上,因此它看起來全都變亂了。任何想法如何解決這一問題?Java Graphics2D DrawString

comp2d.drawString(GetScore(Score),ScoreX,ScoreY);

+2

聽起來像你的面板的背景不被清除應用在重繪過程​​中。如果您可以提供更多關於重新繪製的細節(代碼),將有助於找出問題所在。 – Ash 2010-04-12 01:55:17

回答

5

在繪製字符串之前,您需要重繪背景。如果這是一個普通的面板,您可以通過調用super.paintComponent(g)在您自己的paintComponent中重新繪製背景;然而,因爲這是一場比賽,我會猜測你有一些你需要畫的其他背景。另外,如果可能的話,我建議您使用JLabel來代替使用drawString命令。

+2

+1,我不知道爲什麼人們不斷嘗試在面板上繪製字符串和圖像時自定義繪畫,當你可以使用JLabel時。使用合適的佈局管理器,您不必擔心所有這些小繪畫細節。 – camickr 2010-04-12 02:14:32

+0

是的我試過JLabel,但由於某種原因,當我添加它時,其他一切消失 – user69514 2010-04-12 04:33:51

0

您可以嘗試在comp2d.drawString()之後使用repaint()。

+0

我以前試過,但沒有運氣 – user69514 2010-04-12 01:12:17

0

當你調用這個COMAND: comp2d.drawString(GetScore(Score),ScoreX,ScoreY);

你應該叫這樣的: comp2d.dispose()

因爲comp2d將所有業務後.dispose()

+0

**從複習隊列**:我可以請求你請在你的答案中添加更多的上下文。僅有代碼的答案很難理解。如果您可以在帖子中添加更多信息,它可以幫助提問者和未來的讀者。 – RBT 2017-05-13 09:36:15