|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.text.View javax.swing.text.CompositeView javax.swing.text.BoxView javax.swing.text.ZoneView
public class ZoneView
ZoneView 是一個創建分區的 View 實作,該分區中在需要子視圖來顯示或進行模型/視圖轉換之前不會創建或存儲子視圖。在將要表示的模型很大的情況下,此類別僅為將要主動地查看/編輯的區域建構視圖物件,從而使其在內容消耗上有一個實質性的減少。可以通過某種途徑估計子級的大小,或者僅利用保存的結果來非同步計算。
ZoneView 擴展 BoxView 來為其子級提供一個實作分區的框。分區是特殊的 View 實作(此類別的一個實例的子級),其僅表示一個 ZoneView 實例所負責的一部分模型。在嘗試顯示子視圖之前,分區不創建子視圖。一個框形的視圖很合適,這是因為:
預設的行為由 maxZoneSize 和 maxZonesLoaded 兩個屬性來控制。將 maxZoneSize 設置為整數 Integer.MAX_VALUE 會導致僅創建一個分區。這將有效地將視圖轉換為裝飾網要的一個實作。將 maxZonesLoaded 設置為 Integer.MAX_VALUE 整數值將導致分區永遠不會被卸載。為簡單起見,在由視圖負責的元素的子元素所表示的邊界上創建分區。分區可以是任何 View 實作,但是預設的實作以高效地支持極大分區的 AsyncBoxView 為基礎。
View
欄位摘要 |
---|
從類別 javax.swing.text.View 繼承的欄位 |
---|
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS |
從介面 javax.swing.SwingConstants 繼承的欄位 |
---|
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
建構子摘要 | |
---|---|
ZoneView(Element elem,
int axis)
建構一個 ZoneView。 |
方法摘要 | |
---|---|
protected View |
createZone(int p0,
int p1)
針對模型中的給定範圍(應該在此物件的職責範圍內),創建一個視圖來表示分區。 |
int |
getMaximumZoneSize()
獲取當前最大的分區大小。 |
int |
getMaxZonesLoaded()
獲取當前設置的允許同時載入的分區數。 |
protected int |
getViewIndexAtPosition(int pos)
返回表示模型中給定位置的子視圖索引。 |
void |
insertUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
給出在文檔中此視圖負責的位置插入了某些內容的通知。 |
protected boolean |
isZoneLoaded(View zone)
確定某個分區是否處於載入狀態。 |
protected void |
loadChildren(ViewFactory f)
載入所有子級來初始化視圖。 |
void |
removeUpdate(DocumentEvent changes,
Shape a,
ViewFactory f)
給出從文檔中此視圖負責的位置移除了某些內容的通知。 |
void |
setMaximumZoneSize(int size)
設置所需的最大分區大小。 |
void |
setMaxZonesLoaded(int mzl)
設置當前設置的允許同時載入的分區數。 |
protected void |
unloadZone(View zone)
卸載一個分區(將分區轉換到其記憶體節省狀態)。 |
protected boolean |
updateChildren(DocumentEvent.ElementChange ec,
DocumentEvent e,
ViewFactory f)
父級類別行為將試圖更新子視圖,而在這種情況下並不需要這樣做,因為子級是分區並且不受關聯元素變化的直接影響。 |
protected void |
zoneWasLoaded(View zone)
當載入某個分區後由該分區調用。 |
從類別 javax.swing.text.View 繼承的方法 |
---|
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, isVisible, modelToView, remove, removeAll, updateLayout, viewToModel |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public ZoneView(Element elem, int axis)
elem
- 此視圖負責的元素axis
- View.X_AXIS 或者 View.Y_AXIS方法詳細資訊 |
---|
public int getMaximumZoneSize()
public void setMaximumZoneSize(int size)
size
- 在試圖將分區拆分成更小的分區前,此分區能顯示的字元數。public int getMaxZonesLoaded()
public void setMaxZonesLoaded(int mzl)
mzl
小於 1,此方法將拋出 IllegalArgumentException
。
mzl
- 能主動載入的所需最大分區數,必須大於 0
IllegalArgumentException
- 如果 mzl
< 1protected void zoneWasLoaded(View zone)
zone
- 剛剛載入的子視圖protected void unloadZone(View zone)
zone
- 需要設置成卸載狀態的子視圖。protected boolean isZoneLoaded(View zone)
protected View createZone(int p0, int p1)
p0
- 所需分區的開始處。此參數應 >= getStartOffset() 且 < getEndOffset()。此值也應 < p1。p1
- 所需分區的結尾。此參數應 > getStartOffset() 且 <= getEndOffset()。此值也應 > p0。protected void loadChildren(ViewFactory f)
setParent
方法調用。實作此方法以不直接載入任何子級(因為它們由分區創建)。此方法創建了初始的分區集。但是在試圖顯示分區或執行模型/視圖坐標轉換之前,並不實際組裝這些分區。
CompositeView
中的 loadChildren
f
- 視圖處理器CompositeView.setParent(javax.swing.text.View)
protected int getViewIndexAtPosition(int pos)
CompositeView
中的 getViewIndexAtPosition
pos
- 位置,該值 >= 0
protected boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
View
中的 updateChildren
ec
- 此視圖所負責的元素的更改資訊。如果調用此方法,該參賽不應當為 null
e
- 來自關聯文檔的變化資訊f
- 用於建構子視圖的處理器
View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
,
View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void insertUpdate(DocumentEvent changes, Shape a, ViewFactory f)
View
中的 insertUpdate
changes
- 來自關聯文檔的更改資訊a
- 視圖的當前分派f
- 視圖有子級時用於重建的處理器View.insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
public void removeUpdate(DocumentEvent changes, Shape a, ViewFactory f)
View
中的 removeUpdate
changes
- 來自相關文檔的更改資訊a
- 視圖的當前分派區域f
- 用於重建的處理器(如果該視圖有子級)View.removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。