使用Graphics2D
對象時,找出目標緩衝區的哪一部分需要重新繪製的正確方法是什麼,或者如果需要重新繪製整個緩衝區,目標緩衝區的維度是什麼?在Swing中重繪時識別Graphics2D的髒區域
目標緩衝區可能是BufferedImage
,AWT組件或打印時使用的虛擬設備。對於某些操作,例如使用圖案平鋪背景,即使沒有優化重新繪製的意圖,也需要知道哪個區域需要着色。
我試過使用Graphics.getClipBounds()
,但有時會返回null
。
我假設有沿Rectangle2D getInvaidRegion()
或Rectangle2D getDestinationBufferSize()
我不明白你的意思?什麼部分需要重繪爲什麼? –
@TimB我能找到的最接近的是_.NET_框架中的等價物:[PaintEventArgs.ClipRectangle](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.painteventargs.cliprectangle( v = vs.110)的.aspx)。像往常一樣,描述是不存在的,但是它的作用如下:事件的這個屬性總是告訴你需要重繪的後備緩衝區的哪一部分。這可能是整個緩衝區的一部分,或者只是其中的一部分,只要緩衝區的一部分已經失效。 – Feuermurmel
所以這是當一個Swing重繪請求進來,所以你知道髒區重繪? –