|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.RepaintManager
public class RepaintManager
此類別管理重繪請求,以最大限度地降低重繪次數。例如,通過將多個請求折疊到對元件階層樹成員的單個重繪中。
從 1.6 開始,RepaintManager
處理對 Swing 的頂層元件(JApplet
、JWindow
、JFrame
和 JDialog
)的重繪請求。在這些元件之一上對 repaint
的任何調用將產生適當的 addDirtyRegion
方法。
建構子摘要 | |
---|---|
RepaintManager()
創建新的 RepaintManager 實例。 |
方法摘要 | |
---|---|
void |
addDirtyRegion(Applet applet,
int x,
int y,
int w,
int h)
將 applet 添加到需要重繪的 Component 列表。 |
void |
addDirtyRegion(JComponent c,
int x,
int y,
int w,
int h)
在應刷新的元件列表中添加元件。 |
void |
addDirtyRegion(Window window,
int x,
int y,
int w,
int h)
將 window 添加到需要重繪的 Component 列表。 |
void |
addInvalidComponent(JComponent invalidComponent)
按照佈局需要標記元件,並將事件指派執行緒的 runnable 排入佇列,該執行緒將驗證元件的第一個 isValidateRoot() 祖先。 |
static RepaintManager |
currentManager(Component c)
在給定 Component 的情況下,返回調用執行緒的 RepaintManager。 |
static RepaintManager |
currentManager(JComponent c)
在給定 JComponent 的情況下,返回調用執行緒的 RepaintManager。 |
Rectangle |
getDirtyRegion(JComponent aComponent)
返回元件的當前髒區。 |
Dimension |
getDoubleBufferMaximumSize()
返回最大雙緩衝區大小。 |
Image |
getOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight)
返回螢幕外緩衝區,它應用作帶有元件 c 的雙緩衝區。 |
Image |
getVolatileOffscreenBuffer(Component c,
int proposedWidth,
int proposedHeight)
返回可變螢幕外緩衝區,它應用作帶有指定元件 c 的雙緩衝區。 |
boolean |
isCompletelyDirty(JComponent aComponent)
在下一個 paintDirtyRegions() 中全部繪製 aComponent 時返回 true 的便捷方法。 |
boolean |
isDoubleBufferingEnabled()
如果此 RepaintManager 被雙緩衝,則返回 true。 |
void |
markCompletelyClean(JComponent aComponent)
標記完全乾淨的元件。 |
void |
markCompletelyDirty(JComponent aComponent)
標記完全弄髒的元件。 |
void |
paintDirtyRegions()
繪製被標記為髒的所有元件。 |
void |
removeInvalidComponent(JComponent component)
從無效元件的列表移除元件。 |
static void |
setCurrentManager(RepaintManager aRepaintManager)
設置用於調用執行緒的 RepaintManager。 |
void |
setDoubleBufferingEnabled(boolean aFlag)
在此 RepaintManager 中,啟用或禁用雙緩衝。 |
void |
setDoubleBufferMaximumSize(Dimension d)
設置最大雙緩衝區大小。 |
String |
toString()
返回一個顯示並標記此物件屬性的字元串。 |
void |
validateInvalidComponents()
驗證被標記為無效的所有元件。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
public RepaintManager()
方法詳細資訊 |
---|
public static RepaintManager currentManager(Component c)
c
- 在預設實作中未使用的 Component,但是覆寫版本可以使用它,以根據 Component 返回不同的 RepaintManager
public static RepaintManager currentManager(JComponent c)
註:此方法用於與 Swing 資源庫早期版本的向後二進制相容性。它只返回 currentManager(Component)
返回的結果。
c
- 未使用的 JComponent
public static void setCurrentManager(RepaintManager aRepaintManager)
aRepaintManager
- 要使用的 RepaintManager 物件public void addInvalidComponent(JComponent invalidComponent)
JComponent.isValidateRoot()
,
removeInvalidComponent(javax.swing.JComponent)
public void removeInvalidComponent(JComponent component)
addInvalidComponent(javax.swing.JComponent)
public void addDirtyRegion(JComponent c, int x, int y, int w, int h)
c
- 要重繪的元件,null 不執行任何操作。x
- 要重繪區域的 X 坐標y
- 要重繪區域的 Y 坐標w
- 要重繪區域的寬度h
- 要重繪區域的高度JComponent.repaint(long, int, int, int, int)
public void addDirtyRegion(Window window, int x, int y, int w, int h)
window
添加到需要重繪的 Component
列表。
window
- 要重繪的視窗,null 不執行任何操作。x
- 要重繪區域的 X 坐標y
- 要重繪區域的 Y 坐標w
- 要重繪區域的寬度h
- 要重繪區域的高度JFrame.repaint(long, int, int, int, int)
,
JWindow.repaint(long, int, int, int, int)
,
JDialog.repaint(long, int, int, int, int)
public void addDirtyRegion(Applet applet, int x, int y, int w, int h)
applet
添加到需要重繪的 Component
列表。
applet
- 要重繪的 Applet,null 不執行任何操作。x
- 要重繪區域的 X 坐標y
- 要重繪區域的 Y 坐標w
- 要重繪區域的寬度h
- 要重繪區域的高度JApplet.repaint(long, int, int, int, int)
public Rectangle getDirtyRegion(JComponent aComponent)
public void markCompletelyDirty(JComponent aComponent)
public void markCompletelyClean(JComponent aComponent)
public boolean isCompletelyDirty(JComponent aComponent)
public void validateInvalidComponents()
addInvalidComponent(javax.swing.JComponent)
public void paintDirtyRegions()
addDirtyRegion(javax.swing.JComponent, int, int, int, int)
public String toString()
Object
中的 toString
public Image getOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
c
的雙緩衝區。預設情況下,每個 RepaintManager 都有一個雙緩衝。該緩衝可能比 (proposedWidth,proposedHeight)
小,當最大雙緩衝區的大小已設置為用於接收重繪管理器時,會發生這種情況。
public Image getVolatileOffscreenBuffer(Component c, int proposedWidth, int proposedHeight)
c
的雙緩衝區。返回的圖像將是 VolatileImage 的實例,如果 VolatileImage 物件無法實例化,則為 null。此緩衝區可能小於 (proposedWidth,proposedHeight)
。當最大雙緩衝區的大小已設置為用於接收重繪管理器時,會發生這種情況。
VolatileImage
public void setDoubleBufferMaximumSize(Dimension d)
public Dimension getDoubleBufferMaximumSize()
public void setDoubleBufferingEnabled(boolean aFlag)
aFlag
- 如果啟動雙緩衝,則為 trueisDoubleBufferingEnabled()
public boolean isDoubleBufferingEnabled()
false
,以避免 Swing 中不必要的緩衝。在不支持本機雙緩衝的平臺上,預設值為 true
。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。