Re: [問題] 關於動畫模擬 使用Thread 程式的架構

看板java作者 (sbr)時間16年前 (2009/04/11 01:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《pao0111 (理想絕非空想)》之銘言: : 我的作法也是同樣利用java.util.Timer去負責計時。 : 而呼叫Timer.scheduleAtFixedRate()才會得到固定的計時事件發生間隔。 : 另外也會利用Active Rendering的技巧,直接重繪動畫。而不透過EDT幫 : 我們重繪,效率會比較高。 : 若要使用Active Rendering,需要對欲繪圖的圖形元件(JComponent的子類), : 呼叫setIgnoreRepaint(false)以避免EDT同時繪製影像。 : 接著呼叫該元件的getGraphics()取得Graphics物件,往後的繪圖執行緒即可不斷 : 使用此Graphics重繪影像。 使用 Active Rendering 的做法,每次要繪製圖形到元件時,都從元件取得 Graphics object 來作繪圖,做完就 dispose 掉 Graphics object 會比較妥當。特別是在你的 動畫元件的 size 會變更(特別是變大),或是元件的位置會變動時。 你從一個元件取得 Graphics object 後,等到元件變大,透過先前取得的 Graphics object 來繪製圖形會無法 cover 元件變大後的整個區域。元件變更位置後透過先前 取得的 Graphics object 來繪製圖形,會出現在元件舊位置。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.129.70 ※ 編輯: sbrhsieh 來自: 218.173.129.70 (04/11 02:11)
文章代碼(AID): #19tuN9NM (java)
討論串 (同標題文章)
文章代碼(AID): #19tuN9NM (java)