Java中用雙緩衝技術消除閃爍

Java編寫具有連貫變化的窗口程序時,通常的辦法是在子類中覆蓋父類的paint(Graphics)方法,在方法中使用GUI函數實現窗口重繪的過程。連貫變換的窗口會不斷地調用update(Graphics)函數,該函數自動的調用paint(Graphics)函數。這樣就會出現閃爍的情況。

爲了解決這一問題,可以應用雙緩衝技術。可以通過截取上述過程,覆蓋update(Graphics)函數,在內存中創建一個與窗口大小相同的圖形,並獲得該圖形的圖形上下文(Graphics),再將圖片的圖形上下文作爲參數調用paint(Graphics)函數(paint(Graphics)中的GUI函數會在圖片上畫圖),再在update(Graphics)函數調用drawImage函數將創建的圖形直接畫在窗口上。

 

 

 

 

 

 

因爲大部分繪圖過程是在內存中進行,所以有效地消除了閃爍。這應用了“以空間換取時間”和“功能分塊”的思想

 

 

發佈了35 篇原創文章 · 獲贊 4 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章