2010-11-17 35 views
4

我正在製作一個包含java.awt.Canvas的應用程序,以便在圖形中顯示一系列連接節點。在編輯時,最後一個點用鼠標光標鍵入java.awt.geom.Line2D,以便每次用戶移動鼠標時都必須重新繪製它,並在屏幕上引起令人厭惡的閃光效果。畫布在不斷重新粉刷時閃爍

我這樣做一次,之前,我知道解決的辦法是那麼容易,並不需要一個很艱難的代碼,但亂用paint(g)repaint(g)update(g)方法周圍,儘管它,我不能設法解決它,希望可以有人幫幫我!

提前致謝! :)

+0

什麼是Canvas? – Mot 2010-11-17 11:32:11

+0

查看Java API java.awt.Canvas類。 '畫布組件表示應用程序可以在其上繪製屏幕的空白矩形區域,或者應用程序可以從中捕獲用戶輸入事件。 – DaveJohnston 2010-11-17 11:51:22

回答

4

你需要做雙緩衝擺脫閃爍。大量的例子,如果你谷歌它。

發現之前有question有更多的信息。 這是另一個example

+0

謝謝埃裏克,我已經想過雙緩衝,但我確信有一個更容易的選擇,我確實已經找到了網絡,但現在我不記得了(事實是,我編程這一次之前,但我失去了唯一的副本,因爲我沒有備份)::( – Dane411 2010-11-17 13:10:23

+0

我在接受的答案中看到,在你給我這段代碼的鏈接中: public void update(Graphics g){ //覆蓋這個因爲默認實現總是 //先調用clearRect,導致不需要的閃爍 油漆(g); } }基於評論似乎是我第一次採取的解決方案,但現在似乎並沒有工作,因爲我一直看到這些閃光 這次可能發生了什麼不能工作? – Dane411 2010-11-17 13:27:40

+0

@ Dane411 - 自1998年以來,我還沒有爲大學課程做過任何雙緩衝,但它確實應該非常順利。嘗試另一個例子或谷歌它。如果你不能讓它工作發佈代碼,也許有人可以幫助你 – willcodejavaforfood 2010-11-17 14:38:36