2012-03-24 25 views
0

我有一個程序可以在預定義的窗口周圍反彈任意數量的球。它依靠擺動計時器根據用戶設置的延遲更新球。我的問題是這樣的:球在適度的環境下比他們應該滯後得多。奇怪的是,如果有其他操作正在執行(例如鼠標點擊或鼠標在屏幕上移動),則球可以平穩移動。有誰知道這會導致什麼?在Java swing中滯後圖形

+5

*「有人知道這會導致什麼嗎?」*代碼。爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-03-24 22:20:19

+4

你的代碼阻塞了事件分派線程;系統生成'repaint()'事件不是。請參閱工作示例[此處](http://stackoverflow.com/q/9849950/230513)。 – trashgod 2012-03-24 22:25:13

回答

0

奇怪的是,如果有其他操作正在執行(例如,鼠標單擊或鼠標在屏幕上移動),球可以平穩移動。

基礎上發言,我猜你的問題沒有正確的JPanel或其他java.awt.Component子類,顯示的是球叫repaint()。每當您的代碼更改球的位置時,您需要致電Component.repaint()

+0

猜測最好留下評論。 – 2012-03-24 22:43:11

0

不知道這是否有幫助:你認爲雙緩衝? (即完成所有昂貴的塗裝操作,並在完成後將該圖像複製到可見區域)。

+0

猜測最好留下評論。 – 2012-03-24 22:43:36