|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.text.View javax.swing.text.CompositeView javax.swing.text.BoxView
public class BoxView
一個視圖,它通過沿某軸平鋪將其子級排列到框形狀中。此框與 TeX 中的框有些類似,它需要處理子級的對齊方式,還要考慮到子級的靈活性等等。這是一個建構塊,可用於表示類似線、段落、列表、列、頁面等的集合。子級平鋪時沿用的軸被視為主軸。與它垂直的軸為輔軸。
每個軸的佈局分別由 layoutMajorAxis
和 layoutMinorAxis
方法單獨處理。子類別可通過重新實作這些方法來更改該佈局演算法。需要時將根據是否有快取記憶體佈局資訊以及此快取記憶體是否有效來調用這些方法。通常情況下,當沿軸的給定大小發生更改,或者調用了 layoutChanged
對佈局強制更新時,此方法被調用。layoutChanged
方法使快取記憶體佈局資訊無效(如果有)。發佈到父視圖的要求是通過 calculateMajorAxisRequirements
和 calculateMinorAxisRequirements
進行計算的。如果佈局演算法已更改,這些方法按道理都需要重新實作。
欄位摘要 |
---|
從類別 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 |
建構子摘要 | |
---|---|
BoxView(Element elem,
int axis)
建構一個 BoxView 。 |
方法摘要 | |
---|---|
protected void |
baselineLayout(int targetSpan,
int axis,
int[] offsets,
int[] spans)
在給定的 targetSpan 區域,即我們將使用的區域的寬度(或高度),計算每個子視圖在此 BoxView 中的位置和擴展。 |
protected SizeRequirements |
baselineRequirements(int axis,
SizeRequirements r)
通過檢查每個子視圖的大小計算此 BoxView 的大小要求。 |
protected SizeRequirements |
calculateMajorAxisRequirements(int axis,
SizeRequirements r)
計算主軸 axis 的大小要求。 |
protected SizeRequirements |
calculateMinorAxisRequirements(int axis,
SizeRequirements r)
計算輔軸 axis 的大小要求。 |
protected void |
childAllocation(int index,
Rectangle alloc)
為子視圖分派一個區域。 |
protected boolean |
flipEastAndWestAtEnds(int position,
Position.Bias bias)
確定下一個視圖的放置方向。 |
protected void |
forwardUpdate(DocumentEvent.ElementChange ec,
DocumentEvent e,
Shape a,
ViewFactory f)
將給定的 DocumentEvent 轉發給需要接收模型更改通知的子視圖。 |
float |
getAlignment(int axis)
確定此視圖沿某個軸所需的調整值。 |
int |
getAxis()
獲取平鋪軸屬性。 |
Shape |
getChildAllocation(int index,
Shape a)
獲取給定子視圖的分派。 |
int |
getHeight()
返回框的當前高度。 |
float |
getMaximumSpan(int axis)
確定此視圖沿某個軸的最大區域。 |
float |
getMinimumSpan(int axis)
確定此視圖沿某個軸的最小區域。 |
protected int |
getOffset(int axis,
int childIndex)
獲取特定子級當前佈局的偏移量。 |
float |
getPreferredSpan(int axis)
確定此視圖沿某個軸的首選區域。 |
int |
getResizeWeight(int axis)
獲取調整的權重。 |
protected int |
getSpan(int axis,
int childIndex)
獲取特定子級的當前佈局的區域。 |
protected View |
getViewAtPoint(int x,
int y,
Rectangle alloc)
獲取給定坐標處的子視圖。 |
int |
getWidth()
返回框的當前寬度。 |
protected boolean |
isAfter(int x,
int y,
Rectangle innerAlloc)
確定一個點是否位於分派區域的後面。 |
protected boolean |
isAllocationValid()
子級分派是否仍有效。 |
protected boolean |
isBefore(int x,
int y,
Rectangle innerAlloc)
確定一個點是否位於分派區域的前面。 |
protected boolean |
isLayoutValid(int axis)
確定沿給定軸的佈局是否有效。 |
protected void |
layout(int width,
int height)
執行對框的佈局 |
void |
layoutChanged(int axis)
使沿某軸的佈局變得無效。 |
protected void |
layoutMajorAxis(int targetSpan,
int axis,
int[] offsets,
int[] spans)
執行對框的主軸的佈局(即它所代表的軸)。 |
protected void |
layoutMinorAxis(int targetSpan,
int axis,
int[] offsets,
int[] spans)
執行對框的輔軸的佈局(即與它所代表的軸垂直的軸)。 |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b)
提供從文檔模型的坐標空間到映射到它的視圖的坐標空間的映射。 |
void |
paint(Graphics g,
Shape allocation)
使用該面給定的呈現面和區域呈現 BoxView 。 |
protected void |
paintChild(Graphics g,
Rectangle alloc,
int index)
繪製一個子級。 |
void |
preferenceChanged(View child,
boolean width,
boolean height)
這由子級來調用,以表明它的首選項區域已更改。 |
void |
replace(int index,
int length,
View[] elems)
使佈局變得無效並調整所需/分派的快取記憶體大小。 |
void |
setAxis(int axis)
設置平鋪軸屬性。 |
void |
setSize(float width,
float height)
設置視圖的大小。 |
int |
viewToModel(float x,
float y,
Shape a,
Position.Bias[] bias)
提供從視圖坐標空間到模型邏輯坐標空間的映射。 |
從類別 javax.swing.text.View 繼承的方法 |
---|
append, breakView, changedUpdate, createFragment, forwardUpdateToView, getAttributes, getBreakWeight, getContainer, getDocument, getElement, getEndOffset, getGraphics, getParent, getStartOffset, getToolTipText, getViewFactory, getViewIndex, insert, insertUpdate, isVisible, modelToView, remove, removeAll, removeUpdate, updateChildren, updateLayout, viewToModel |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public BoxView(Element elem, int axis)
BoxView
。
elem
- 此視圖負責的元素axis
- View.X_AXIS
或 View.Y_AXIS
之一方法詳細資訊 |
---|
public int getAxis()
View.X_AXIS
或 View.Y_AXIS
public void setAxis(int axis)
axis
- View.X_AXIS
或 View.Y_AXIS
之一public void layoutChanged(int axis)
setSize
方法時,佈局將被更新。
axis
- View.X_AXIS
或 View.Y_AXIS
之一protected boolean isLayoutValid(int axis)
axis
- View.X_AXIS
或 View.Y_AXIS
之一protected void paintChild(Graphics g, Rectangle alloc, int index)
g
- 圖像上下文alloc
- 分派的要向其繪製的區域index
- 子級的索引,該索引 >= 0 && < getViewCount()public void replace(int index, int length, View[] elems)
CompositeView
中的 replace
index
- 要插入新視圖的子視圖的開始索引;其值 >= 0 且 <= getViewCountlength
- 要移除的現有子視圖數;其值 >= 0 且 <= (getViewCount() - offset)elems
- 要添加的子視圖;此值可以為 null
,表示沒有要添加的子級(對移除有用)protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
DocumentEvent
轉發給需要接收模型更改通知的子視圖。如果有一個子級更改了它的要求並且在轉發前分派為有效,則框中從開始子級到框結束部分將被重新繪製。
View
中的 forwardUpdate
ec
- 此視圖負責的元素發生的更改(如果未發生更改,則為 null
)e
- 來自相關文檔的更改資訊a
- 視圖的當前分派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 preferenceChanged(View child, boolean width, boolean height)
View
中的 preferenceChanged
child
- 子視圖width
- 如果應更改寬度首選項,則為 trueheight
- 如果應更改高度首選項,則為 trueJComponent.revalidate()
public int getResizeWeight(int axis)
View
中的 getResizeWeight
axis
- 可以是 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果軸無效public void setSize(float width, float height)
View
中的 setSize
width
- 寬度 >= 0height
- 高度 >= 0public void paint(Graphics g, Shape allocation)
BoxView
。只呈現與給定 Graphics
邊界相交的子級。
View
中的 paint
g
- 要使用的呈現面allocation
- 要呈現的已分派區域View.paint(java.awt.Graphics, java.awt.Shape)
public Shape getChildAllocation(int index, Shape a)
null
,否則執行父級類別行為。
CompositeView
中的 getChildAllocation
index
- 子級的索引,該索引 >= 0 && < getViewCount()a
- 對此視圖的分派
a
為 null
則返回 null
;如果佈局無效,則返回 null
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
CompositeView
中的 modelToView
pos
- 要轉換的位置,其值 >= 0a
- 分派的要在其中呈現的區域b
- 一個偏移值,可以是 Position.Bias.Forward
或 Position.Bias.Backward
BadLocationException
- 如果給定位置在所關聯的文檔中不是一個有效位置View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
CompositeView
中的 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 float getAlignment(int axis)
View
中的 getAlignment
axis
- 可以是 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果軸無效public float getPreferredSpan(int axis)
View
中的 getPreferredSpan
axis
- 可以為 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果軸型別無效View.getPreferredSpan(int)
public float getMinimumSpan(int axis)
View
中的 getMinimumSpan
axis
- 可以為 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果軸型別無效View.getPreferredSpan(int)
public float getMaximumSpan(int axis)
View
中的 getMaximumSpan
axis
- 可以為 View.X_AXIS
或 View.Y_AXIS
IllegalArgumentException
- 如果軸型別無效View.getPreferredSpan(int)
protected boolean isAllocationValid()
protected boolean isBefore(int x, int y, Rectangle innerAlloc)
CompositeView
中的 isBefore
x
- X 坐標,該坐標 >= 0y
- Y 坐標,該坐標 >= 0innerAlloc
- 已分派區域;這是 insets 內部的區域
protected boolean isAfter(int x, int y, Rectangle innerAlloc)
CompositeView
中的 isAfter
x
- X 坐標,該坐標 >= 0y
- Y 坐標,該坐標 >= 0innerAlloc
- 已分派區域;這是 insets 內部的區域
protected View getViewAtPoint(int x, int y, Rectangle alloc)
CompositeView
中的 getViewAtPoint
x
- X 坐標,該坐標 >= 0y
- Y 坐標,該坐標 >= 0alloc
- 父級在入口處的內部分派,在出口處應將更改為子級的分派
protected void childAllocation(int index, Rectangle alloc)
CompositeView
中的 childAllocation
index
- 要為子視圖分派的索引,該索引 >= 0 && < getViewCount()alloc
- 分派的區域protected void layout(int width, int height)
width
- insets 的內部寬度,該寬度 >= 0height
- insets 的內部高度,該高度 >= 0public int getWidth()
public int getHeight()
protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
targetSpan
- 分派給視圖的總區域,將用於佈置子級axis
- 要佈置的軸offsets
- 每個子視圖相對於視圖原點的偏移量;這是一個返回值,由此方法的實作填充spans
- 每個子視圖的區域;這是一個返回值,由此方法的實作填充protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)
targetSpan
- 分派給視圖的總區域,將用於佈置子級axis
- 要佈置的軸offsets
- 每個子視圖相對於視圖原點的偏移量;這是一個返回值,由此方法的實作填充spans
- 每個子視圖的區域;這是一個返回值,由此方法的實作填充protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r)
axis
的大小要求。
axis
- 所考察的軸r
- SizeRequirements
物件;如果為 null
,將創建一個物件
SizeRequirements
物件SizeRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
axis
的大小要求。
axis
- 所考察的軸r
- SizeRequirements
物件;如果為 null
,將創建一個物件
SizeRequirements
物件SizeRequirements
protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)
targetSpan
區域,即我們將使用的區域的寬度(或高度),計算每個子視圖在此 BoxView
中的位置和擴展。
targetSpan
- 分派給視圖的總區域,將用於佈置子級axis
- 所考察的軸,可以是 View.X_AXIS
或 View.Y_AXIS
offsets
- 一個空陣列,由此方法用指定每個子視圖位置的值填充spans
- 一個空陣列,由此方法用指定每個子視圖擴展的值填充protected SizeRequirements baselineRequirements(int axis, SizeRequirements r)
BoxView
的大小要求。
axis
- 所考察的軸r
- SizeRequirements
物件;如果為 null
,將創建一個物件
SizeRequirements
物件protected int getOffset(int axis, int childIndex)
axis
- 所考察的軸childIndex
- 所請求子級的索引
protected int getSpan(int axis, int childIndex)
axis
- 所考察的軸childIndex
- 所請求子級的索引
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias)
View
從按左到右佈置,這樣位於它東面的 View
的索引為 n + 1,位於它西面的 View
的索引為 n - 1。在某些情況下(例如雙向文本中)有可能位於它東面的 View
索引不是 n + 1,而是 n - 1,位於它西面的 View
索引不是 n - 1,而是 n + 1。在這種情況下,此方法返回 true,表明這些 View
按降序佈置。否則該方法返回 false,表明這些視圖 View
按升序佈置。
如果接收者沿 Y_AXIS
佈置它的 View
,這將返回在負責呈現 position
和 bias
的 View
上調用相同的方法所返回的值。否則將返回 false。
CompositeView
中的 flipEastAndWestAtEnds
position
- 模型中的位置bias
- 可以是 Position.Bias.Forward
或 Position.Bias.Backward
View
的負責呈現 position
和 bias
的 View
按降序佈置則返回 true;否則返回 false
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。