|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.text.View javax.swing.text.CompositeView
public abstract class CompositeView
CompositeView
是一個管理著一個或多個子視圖的抽象 View
實作。(注意,CompositeView
主要管理相對較少的子視圖。)CompositeView
主要充當 View
實作的起點,例如 BoxView
,它將包含子 View
。要管理子 View
集的子類別應使用 replace(int, int, javax.swing.text.View[])
方法。由於 View
在 DocumentListener
通知過程中調用 replace
,所以通常不需要直接調用 replace
。
雖然 CompositeView
不會對其子 View
施加佈局策略,但它允許插入將包含的子 View
。插入內容可通過 setInsets(short, short, short, short)
或 setParagraphInsets(javax.swing.text.AttributeSet)
進行設置。
除了 View
的抽象方法之外,CompositeView
的子類別還需要覆寫:
isBefore(int, int, java.awt.Rectangle)
- 用於測試給定的 View
位置是否位於 CompositeView
的可視空間之前。
isAfter(int, int, java.awt.Rectangle)
- 用於測試給定的 View
位置是否位於 CompositeView
的可視空間之後。
getViewAtPoint(int, int, java.awt.Rectangle)
- 返回位於給定可視位置的視圖。
childAllocation(int, java.awt.Rectangle)
- 返回特定子 View
的邊界。getChildAllocation
在其邊界減去 CompositeView
的 Inset
之後,將調用 childAllocation
。
欄位摘要 |
---|
從類別 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 |
建構子摘要 | |
---|---|
CompositeView(Element elem)
為給定元素建構一個 CompositeView 。 |
方法摘要 | |
---|---|
protected abstract void |
childAllocation(int index,
Rectangle a)
返回給定子級的分派區域。 |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias)
確定下一個視圖放置的朝向。 |
protected short |
getBottomInset()
獲取底部 inset。 |
Shape |
getChildAllocation(int index,
Shape a)
獲取要在其中呈現的給定子視圖的分派區域。 |
protected Rectangle |
getInsideAllocation(Shape a)
將分派給視圖的不可變分派區域轉換為表示內部分派區域的可變分派區域(即給定分派區域的邊界,其頂部、左部、底部和右部的 insets 已移除)。 |
protected short |
getLeftInset()
獲取左部 inset。 |
protected int |
getNextEastWestVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
返回鼠標的下一個可視位置,可以在東或在西。 |
protected int |
getNextNorthSouthVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
返回鼠標的下一個可視位置,可以在北也可以在南。 |
int |
getNextVisualPositionFrom(int pos,
Position.Bias b,
Shape a,
int direction,
Position.Bias[] biasRet)
提供一種方法來確定下一個以可視化形式表示的模型位置,使用者可以在此位置放置一個插入符。 |
protected short |
getRightInset()
獲取右部 inset。 |
protected short |
getTopInset()
獲取頂部 inset。 |
View |
getView(int n)
返回該容器中的第 n 個視圖。 |
protected abstract View |
getViewAtPoint(int x,
int y,
Rectangle alloc)
獲取位於給定坐標的子視圖。 |
protected View |
getViewAtPosition(int pos,
Rectangle a)
獲取表示模型中給定位置的子視圖。 |
int |
getViewCount()
返回此視圖的子視圖數。 |
int |
getViewIndex(int pos,
Position.Bias b)
返回表示模型中給定位置的子視圖索引。 |
protected int |
getViewIndexAtPosition(int pos)
獲取表示模型中給定位置的子視圖索引。 |
protected abstract boolean |
isAfter(int x,
int y,
Rectangle alloc)
測試一個點是否位於矩形範圍之後。 |
protected abstract boolean |
isBefore(int x,
int y,
Rectangle alloc)
測試一個點是否位於矩形範圍之前。 |
protected void |
loadChildren(ViewFactory f)
載入所有的子級以初始化該視圖。 |
Shape |
modelToView(int p0,
Position.Bias b0,
int p1,
Position.Bias b1,
Shape a)
提供從文檔模型坐標空間到所映射的視圖坐標空間的映射。 |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b)
提供從文檔模型坐標空間到所映射的視圖坐標空間的映射。 |
void |
replace(int offset,
int length,
View[] views)
替換子視圖。 |
protected void |
setInsets(short top,
short left,
short bottom,
short right)
設置視圖的 insets。 |
protected void |
setParagraphInsets(AttributeSet attr)
按照給定屬性中指定的段落屬性設置 insets。 |
void |
setParent(View parent)
設置此視圖的父級。 |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] bias)
提供從視圖坐標空間到模型的邏輯坐標空間的映射。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public CompositeView(Element elem)
CompositeView
。
elem
- 此視圖負責的元素方法詳細資訊 |
---|
protected void loadChildren(ViewFactory f)
setParent(javax.swing.text.View)
方法調用。子類別可重新實作它以便按不同的方式初始化其子視圖。預設實作為每個子元素創建一個子視圖。
f
- 視圖處理器setParent(javax.swing.text.View)
public void setParent(View parent)
loadChildren
方法。不應在建構子中載入子級,因為設置父級的動作可能引起它們試圖沿層次結構向上搜尋,例如,要獲得承載 Container
。如果此視圖有子級(視圖從視圖層次結構中的一個位置移動到另一個位置),則不調用 loadChildren
方法。
View
中的 setParent
parent
- 視圖的父級,如果沒有則為 null
public int getViewCount()
View
中的 getViewCount
getView(int)
public View getView(int n)
View
中的 getView
n
- 需要的視圖數量,該數量 >= 0 且 < getViewCount()
n
的視圖public void replace(int offset, int length, View[] views)
null
,並且移除了對它們的內部參考,所以它們有可能被作為垃圾回收。
View
中的 replace
offset
- 要插入新視圖的子視圖的起始索引;該索引 >= 0 且 <= getViewCountlength
- 要移除的現有子視圖數;此值應 >= 0 且 <= (getViewCount() - offset)views
- 要添加的子視圖;此值可以為 null
,表示不添加任何子級(對移除有用)public Shape getChildAllocation(int index, Shape a)
View
中的 getChildAllocation
index
- 子級的索引,該索引 >= 0 且 < getViewCount()a
- 對此視圖的分派區域
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
View
中的 modelToView
pos
- 要轉換的位置,該位置 >= 0a
- 要在其中呈現的已分派區域b
- 一個偏移值,可以是 Position.Bias.Forward
或 Position.Bias.Backward
BadLocationException
- 如果給定位置不是相關文檔中的有效位置View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a) throws BadLocationException
View
中的 modelToView
p0
- 要轉換的位置,該位置 >= 0b0
- 由 p0 表示的上一字元或下一個字元的偏移量,在這種情況下,該位置是兩個視圖的邊界;既可以是 Position.Bias.Forward
,也可以是 Position.Bias.Backward
p1
- 要轉換的位置,該位置 >= 0b1
- 由 p1 表示的上一字元或下一個字元的偏移量,在這種情況下,該位置是兩個視圖的邊界;a
- 要呈現的已分派區域
BadLocationException
- 如果給定位置不是相關文檔中的有效位置
IllegalArgumentException
- 如果為無效的偏移量參數View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
View
中的 viewToModel
x
- 要轉換的視圖位置的 x 坐標,該坐標 >= 0y
- 要轉換的視圖位置的 y 坐標,該坐標 >= 0a
- 要呈現的已分派區域bias
- 可以是 Position.Bias.Forward
或 Position.Bias.Backward
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
getNextNorthSouthVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
和 getNextEastWestVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
的便捷方法。
View
中的 getNextVisualPositionFrom
pos
- 要轉換的位置,該位置 >= 0b
- 偏移量值,可以是 Position.Bias.Forward
或 Position.Bias.Backward
a
- 要呈現的已分派區域direction
- 相對當前位置的方向,通常可視為鍵盤上看到的方向鍵;它可能為下列值之一:
SwingConstants.WEST
SwingConstants.EAST
SwingConstants.NORTH
SwingConstants.SOUTH
biasRet
- 一個套件含已檢查偏移量的陣列
BadLocationException
IllegalArgumentException
- 如果 direction
無效public int getViewIndex(int pos, Position.Bias b)
getViewIndexByPosition
方法以便向後相容。
View
中的 getViewIndex
pos
- 位置,該位置 >= 0
protected abstract boolean isBefore(int x, int y, Rectangle alloc)
x
- X 坐標,該坐標 >= 0y
- Y 坐標,該坐標 >= 0alloc
- 矩形
protected abstract boolean isAfter(int x, int y, Rectangle alloc)
x
- X 坐標,該坐標 >= 0y
- Y 坐標,該坐標 >= 0alloc
- 矩形
protected abstract View getViewAtPoint(int x, int y, Rectangle alloc)
x
- X 坐標,該坐標 >= 0y
- Y 坐標,該坐標 >= 0alloc
- 入口處父級的分派區域,出口處應改為子級的分派區域
protected abstract void childAllocation(int index, Rectangle a)
index
- 子級的索引,該索引 >= 0 且 < getViewCount()a
- 入口處框內部的分派區域,和出口索引處的子視圖分派區域。protected View getViewAtPosition(int pos, Rectangle a)
pos
- 位置,該位置 >= 0a
- 入口處框內部的分派區域,出口處包含此位置的視圖分派區域
null
protected int getViewIndexAtPosition(int pos)
pos
- 位置,該位置 >= 0
protected Rectangle getInsideAllocation(Shape a)
childAllocation
方法。
a
- 分派給視圖的分派區域
null
,則返回值為 null
protected void setParagraphInsets(AttributeSet attr)
attr
- 屬性protected void setInsets(short top, short left, short bottom, short right)
top
- 頂部 inset,該值 >= 0left
- 左部 inset,該值 >= 0bottom
- 底部 inset,該值 >= 0right
- 右部 inset,該值 >= 0protected short getLeftInset()
protected short getRightInset()
protected short getTopInset()
protected short getBottomInset()
protected int getNextNorthSouthVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
pos
- 要轉換的位置,該位置 >= 0b
- 偏移量值,可以是 Position.Bias.Forward
或 Position.Bias.Backward
a
- 要呈現的已分派區域direction
- 相對當前位置的方向,通常可視為鍵盤上看到的方向鍵;它可能為下列值之一:
SwingConstants.NORTH
SwingConstants.SOUTH
biasRet
- 一個套件含已檢查偏移量的陣列
BadLocationException
IllegalArgumentException
- 如果 direction
無效getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
protected int getNextEastWestVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
pos
- 要轉換的位置,該位置 >= 0b
- 偏移量值,可以是 Position.Bias.Forward
或 Position.Bias.Backward
a
- 要呈現的已分派區域direction
- 相對當前位置的方向,通常可視為鍵盤上看到的方向鍵;它可能為下列值之一:
SwingConstants.WEST
SwingConstants.EAST
biasRet
- 一個套件含已檢查偏移量的陣列
BadLocationException
IllegalArgumentException
- 如果 direction
無效getNextVisualPositionFrom(int, javax.swing.text.Position.Bias, java.awt.Shape, int, javax.swing.text.Position.Bias[])
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
View
位於索引 n 處,通常 View
是從左向右放置的,所以在東面的 View
將位於索引 n + 1 處,在西面的 View
將位於索引 n - 1 處。在某些情況下(例如雙向文本中)有可能東面的 View
不是位於 n + 1 處,而是位於 n - 1 處,或者西面的 View
不是位於 n - 1 處,而是位於索引 n + 1 處。這種情況下,該方法將返回 true,指示 View
按降序放置。
它無條件返回 false,如果有可能需要按降序放置 View
,則子類別應覆寫此方法。
position
- 模型中的位置bias
- 可以是 Position.Bias.Forward
或 Position.Bias.Backward
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。