|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.text.GapContent
public class GapContent
AbstractDocument.Content 介面的一個實作,使用類似於 emacs 使用的間隙緩衝區來實作。基礎存儲是一個 unicode 字元陣列,在陣列的某個位置存在間隙。將該間隙移動到要進行更改的位置,以便利用一般行為,讓多數更改都在原來的位置上進行。在間隙邊界發生更改通常很容易,而且移動間隙通常比直接移動陣列內容來適應更改要更容易。
追蹤更改的位置也通常容易維護。Position 實作(標記)存儲陣列索引,並可方便地根據當前間隙位置計算連續位置。更改只需要更新移動間隙時新舊間隙邊界之間的標記,因此更新標記通常會相當容易。該標記是按順序存儲的,所以可以使用二分尋找法快速找到。這提高了添加標記的成本,但降低了保持標記更新的成本。
建構子摘要 | |
---|---|
GapContent()
創建新的 GapContent 物件。 |
|
GapContent(int initialLength)
創建具有指定初始大小的新 GapContent 物件。 |
方法摘要 | |
---|---|
protected Object |
allocateArray(int len)
分派一個存儲適當型別項的陣列(由子類別確定)。 |
Position |
createPosition(int offset)
在內容中創建一個位置,使其在內容發生變化時能追蹤內容的更改。 |
protected Object |
getArray()
Access to the array. |
protected int |
getArrayLength()
獲取分派的陣列的長度。 |
void |
getChars(int where,
int len,
Segment chars)
檢索部分內容。 |
protected int |
getGapEnd()
Access to the end of the gap. |
protected int |
getGapStart()
Access to the start of the gap. |
protected Vector |
getPositionsInRange(Vector v,
int offset,
int length)
返回一個套件含 UndoPosRef 實例的 Vector,其 Position 的範圍從 offset 到 offset + length 。 |
String |
getString(int where,
int len)
檢索部分內容。 |
UndoableEdit |
insertString(int where,
String str)
在內容中插入字元串。 |
int |
length()
返回內容的長度。 |
UndoableEdit |
remove(int where,
int nitems)
移除部分內容。 |
protected void |
replace(int position,
int rmSize,
Object addItems,
int addSize)
Replace the given logical position in the storage with the given new items. |
protected void |
resetMarksAtZero()
重新設置具有 0 偏移量的所有標記,使其也有零索引。 |
protected void |
shiftEnd(int newSize)
擴大間隙、移動任何必要的資料和更新適當的標記。 |
protected void |
shiftGap(int newGapStart)
將間隙的起始點移動到新位置,而不更改間隙的大小。 |
protected void |
shiftGapEndUp(int newGapEnd)
調整間隙,使其結尾向前擴展。 |
protected void |
shiftGapStartDown(int newGapStart)
調整間隙,使其結尾向後擴展。 |
protected void |
updateUndoPositions(Vector positions,
int offset,
int length)
重新設置處在 positions 的所有 UndoPosRef 實例的位置。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public GapContent()
public GapContent(int initialLength)
initialLength
- 初始大小方法詳細資訊 |
---|
protected Object allocateArray(int len)
protected int getArrayLength()
public int length()
AbstractDocument.Content
中的 length
AbstractDocument.Content.length()
public UndoableEdit insertString(int where, String str) throws BadLocationException
AbstractDocument.Content
中的 insertString
where
- 起始位置,該值 >= 0 且 < length()str
- 要插入的非 null 字元串
BadLocationException
- 如果指定位置無效AbstractDocument.Content.insertString(int, java.lang.String)
public UndoableEdit remove(int where, int nitems) throws BadLocationException
AbstractDocument.Content
中的 remove
where
- 起始位置,該值 >= 0 且 where + nitems < length()nitems
- 要移除的字元數,該值 >= 0
BadLocationException
- 如果指定位置無效AbstractDocument.Content.remove(int, int)
public String getString(int where, int len) throws BadLocationException
AbstractDocument.Content
中的 getString
where
- 起始位置,該值 >= 0len
- 要檢索的長度,該值 >= 0
BadLocationException
- 如果指定位置無效AbstractDocument.Content.getString(int, int)
public void getChars(int where, int len, Segment chars) throws BadLocationException
AbstractDocument.Content
中的 getChars
where
- 起始位置,該值 >= 0,where + len <= length()len
- 要檢索的字元數,該值 >= 0chars
- 要在其中返回字元的 Segment 物件
BadLocationException
- 如果指定位置無效AbstractDocument.Content.getChars(int, int, javax.swing.text.Segment)
public Position createPosition(int offset) throws BadLocationException
AbstractDocument.Content
中的 createPosition
offset
- 要追蹤的偏移量,該值 >= 0
BadLocationException
- 如果指定位置無效protected void shiftEnd(int newSize)
protected void shiftGap(int newGapStart)
protected void resetMarksAtZero()
protected void shiftGapStartDown(int newGapStart)
protected void shiftGapEndUp(int newGapEnd)
protected Vector getPositionsInRange(Vector v, int offset, int length)
offset
到 offset
+ length
。如果 v
不為 null,則在此處放置比對的 Position。返回具有結果 Position 的向量。
v
- 要使用的 Vector,其位置是向量為 null 時創建的新位置offset
- 起始偏移量,該值 >= 0length
- 長度,該值 >= 0
protected void updateUndoPositions(Vector positions, int offset, int length)
positions
的所有 UndoPosRef 實例的位置。
這裡指的是內部用法,通常不適合子類別。
positions
- 重新設置 UndoPosRef 實例的位置protected final Object getArray()
protected final int getGapStart()
protected final int getGapEnd()
protected void replace(int position, int rmSize, Object addItems, int addSize)
position
- the location to make the replacement. This
is not the location in the underlying storage array, but
the location in the contiguous space being modeled.rmSize
- the number of items to removeaddItems
- the new items to place in storage.
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。