|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.swing.text
类 GapContent
java.lang.Object javax.swing.text.GapContent
- 所有已实现的接口:
- Serializable, AbstractDocument.Content
-
public class GapContent
- extends Object
- implements AbstractDocument.Content, Serializable
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. The actual type of the array is known only by the subclass. |
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. This will move the gap to the area being changed if the gap is not currently located at the change location. |
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 |
构造方法详细信息 |
---|
GapContent
public GapContent()
- 创建新的 GapContent 对象。初始大小默认为 10。
GapContent
public GapContent(int initialLength)
-
创建具有指定初始大小的新 GapContent 对象。初始大小不允许小于 2,以便留出空间供再次包含间隙和拆分操作。
- 参数:
initialLength
- 初始大小
方法详细信息 |
---|
allocateArray
protected Object allocateArray(int len)
- 分配一个存储适当类型项的数组(由子类确定)。
-
-
getArrayLength
protected int getArrayLength()
- 获取分配的数组的长度。
-
-
length
public int length()
- 返回内容的长度。
-
- 指定者:
-
接口
AbstractDocument.Content
中的length
-
- 返回:
- 长度,该值 >= 1
- 另请参见:
AbstractDocument.Content.length()
insertString
public UndoableEdit insertString(int where, String str) throws BadLocationException
- 在内容中插入字符串。
-
- 指定者:
-
接口
AbstractDocument.Content
中的insertString
-
- 参数:
where
- 起始位置,该值 >= 0 且 < length()str
- 要插入的非 null 字符串- 返回:
- 撤消的 UndoableEdit 对象
- 抛出:
BadLocationException
- 如果指定位置无效- 另请参见:
AbstractDocument.Content.insertString(int, java.lang.String)
remove
public UndoableEdit remove(int where, int nitems) throws BadLocationException
- 移除部分内容。
-
- 指定者:
-
接口
AbstractDocument.Content
中的remove
-
- 参数:
where
- 起始位置,该值 >= 0 且 where + nitems < length()nitems
- 要移除的字符数,该值 >= 0- 返回:
- 撤消的 UndoableEdit 对象
- 抛出:
BadLocationException
- 如果指定位置无效- 另请参见:
AbstractDocument.Content.remove(int, int)
getString
public String getString(int where, int len) throws BadLocationException
- 检索部分内容。
-
- 指定者:
-
接口
AbstractDocument.Content
中的getString
-
- 参数:
where
- 起始位置,该值 >= 0len
- 要检索的长度,该值 >= 0- 返回:
- 一个表示该内容的字符串
- 抛出:
BadLocationException
- 如果指定位置无效- 另请参见:
AbstractDocument.Content.getString(int, int)