2012-02-20 62 views
1

正在處理一些與java圖形相關的代碼,這是我今天演講的一個非常簡單的例子。無論如何,互聯網似乎表示,更新不會被系統觸發器調用,例如調整框架大小等。在這個示例中,更新通過這樣的觸發器來調用(因此,當我只希望調用paint時調用update和paint )。他似乎把它放在了操作系統上,每個都有不同的結果。Java repaint()/ update()

任何人都可以澄清這對我嗎?

Windows系統,7

在此先感謝

回答

0

這裏有一個偉大的文章,真正說明了一切:

http://java.sun.com/products/jfc/tsc/articles/painting/

1)畫中AWT

要了解AWT的繪畫API如何工作,有助於瞭解在窗口環境中觸發了哪些繪畫操作。在AWT中,有 兩種繪畫操作:系統觸發式繪畫和應用程序觸發式繪畫。

2)系統觸發的繪畫

在一個系統中觸發的畫操作中,系統請求 組件呈現其內容,通常是由於下列 原因之一:

  • 組件首先在屏幕上可見。

  • 該組件被調整大小。

  • 組件有損壞需要修復。 (例如,以前遮擋組件的東西已經移動,並且組件的先前被遮擋的部分已經曝光)。

3)應用程序觸發的繪畫

在一種應用觸發的畫操作中,部件決定 它需要由於其內部狀態具有 改變來更新其內容。 (例如,一個按鈕檢測到按下了一個鼠標按鈕並確定它需要畫一個「壓下」按鈕 visual)。

4)paint方法

不管的繪製請求是怎麼觸發,AWT採用繪畫的 「回調」機制,而這個機制是 兩個重量級和輕量級組件相同。這意味着程序 應該將組件的渲染代碼置於特定的 重寫方法中,並且該工具包在 時間繪製時將調用此方法。