|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.swing.text.View javax.swing.text.ComponentView
public class ComponentView
實作視圖介面的元件裝飾器。整個元素用於代表該元件。它充當了只供顯示的 View 實作和交談式輕量級元件之間的網關(即允許元件嵌入 View 層次結構中)。
元件根據 Component.getAlignmentY
返回的值相對於文本基線放置。對於 Swing 元件,使用 JComponent.setAlignmentY
方法可以很便捷地設置此值。例如,值設置為 0.75
將使元件的 75% 位於基線的上面,25% 位於基線的下面。
通過確保在事件執行緒中完成對所有的元件存取,實作此類別可完成在多執行緒情況下(例如,來自模型更改的同步通知)進行正常工作所需的工作。
所使用的元件由 createComponent 方法的返回值確定。此方法的預設實作為將存儲的元件作為元素的一個屬性返回(通過調用 StyleConstants.getComponent)。此行為有一個限制,元件不能由多於一個文本元件(即可共享的模型)使用。通過實作 createComponent 從而實際上基於屬性中包含的某種規範創建一個元件,子類別可消除此約束。html 套件中的 ObjectView 類別為 ComponentView 實作的一個範例,它支持一個共享模型的多元件視圖。
欄位摘要 |
---|
從類別 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 |
建構子摘要 | |
---|---|
ComponentView(Element elem)
創建新的 ComponentView 物件。 |
方法摘要 | |
---|---|
protected Component |
createComponent()
創建與此視圖關聯的元件。 |
float |
getAlignment(int axis)
確定此視圖沿某軸所需的對齊方式。 |
Component |
getComponent()
獲取與此視圖關聯的元件。 |
float |
getMaximumSpan(int axis)
確定此視圖沿某軸的最大區域。 |
float |
getMinimumSpan(int axis)
確定此視圖沿某軸的最小區域。 |
float |
getPreferredSpan(int axis)
確定此視圖沿某軸的首選區域。 |
Shape |
modelToView(int pos,
Shape a,
Position.Bias b)
提供模型坐標空間到視圖坐標空間的映射。 |
void |
paint(Graphics g,
Shape a)
真正的繪製行為自然來源於元件與其父容器(容納此視圖的同一容器)之間的關聯。 |
void |
setParent(View p)
為子視圖設置父級。 |
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 ComponentView(Element elem)
elem
- 要裝飾的元素方法詳細資訊 |
---|
protected Component createComponent()
public final Component getComponent()
public void paint(Graphics g, Shape a)
View
中的 paint
g
- 圖形上下文a
- 形狀View.paint(java.awt.Graphics, java.awt.Shape)
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)
public float getAlignment(int axis)
View
中的 getAlignment
axis
- 可以是 View.X_AXIS 或 View.Y_AXIS
public void setParent(View p)
getContainer
返回的值。如果父視圖參數為 null,此視圖將被清空,這樣元件將從其父中移除。
更改元件所在的層次結構將會觸動元件鎖,這是 View 層次結構的一個不安全之處。因此,如果在事件執行緒中,則會立即執行此功能;如果是從另一個執行緒(來自非同步更新的更改通知)調用,則此功能將在事件佇列排隊。
View
中的 setParent
p
- 父級public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
View
中的 modelToView
pos
- 要轉換的位置,該值 >= 0a
- 分派的要在其中呈現的區域b
- 當位置是兩個視圖的邊界時,該參數是離由偏移量表示的前一個字元或者下一個字元的偏差;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)
View
中的 viewToModel
x
- X 坐標,該值 >= 0y
- Y 坐標,該值 >= 0a
- 分派的要在其中呈現的區域
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。