public class BoxView extends CompositeView
各軸のレイアウトは、layoutMajorAxis
メソッドとlayoutMinorAxis
メソッドとで別々に処理されます。サブクラスは、これらのメソッドをもう一度実装することで、レイアウト・アルゴリズムを変更します。これらのメソッドは、キャッシュされたレイアウト情報があるかどうか、またキャッシュが有効であるかどうかによって、必要に応じて呼び出されます。通常、軸に沿った指定サイズが変更される場合や、layoutChanged
が呼び出されてレイアウトが強制的に変更される場合に、これらのメソッドが呼び出されます。キャッシュされたレイアウト情報がある場合は、layoutChanged
メソッドで無効にされます。親ビューに通知された要件は、calculateMajorAxisRequirements
メソッドやcalculateMinorAxisRequirements
メソッドで計算されます。レイアウト・アルゴリズムが変更された場合、これらのメソッドは再度実装される必要があります。
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
修飾子と型 | メソッドと説明 |
---|---|
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)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
|
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, getViewIndexAtPosition, loadChildren, modelToView, setInsets, setParagraphInsets, setParent
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
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)
replace
、クラス: CompositeView
index
- 新規ビューを挿入するための、子ビューの開始インデックス。この値は0以上で、getViewCount以下length
- 削除する既存の子ビューの数。この値は0以上で、(getViewCount() - offset)以下elems
- 追加する子ビュー。追加される子がない場合は、null
も可(削除に便利)protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
DocumentEvent
を、モデルへの変更について通知する必要のある子ビューに転送します。先頭の子のボックスの部分をボックスの最後に転送する前に、子がその要件を変更しており、割当てが有効であった場合、再ペイントされます。forwardUpdate
、クラス: View
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)
preferenceChanged
、クラス: View
child
- 子ビューwidth
- 幅の設定が変更された場合にtrueheight
- 高さの設定が変更された場合にtrueJComponent.revalidate()
public int getResizeWeight(int axis)
getResizeWeight
、クラス: View
axis
- View.X_AXIS
またはView.Y_AXIS
IllegalArgumentException
- 軸が無効な場合public void setSize(float width, float height)
public void paint(Graphics g, Shape allocation)
BoxView
をレンダリングします。指定されたGraphics
のクリップ境界を交差する子だけが描画されます。paint
、クラス: View
g
- 使用する描画表面allocation
- 描画するために割り当てられた領域View.paint(java.awt.Graphics, java.awt.Shape)
public Shape getChildAllocation(int index, Shape a)
null
を返すために実装し、そうでない場合はスーパー・クラスが実行されます。getChildAllocation
、クラス: CompositeView
index
- 子のインデックス。0以上でgetViewCount()より小さい値a
- このビューに対する割当てa
がnull
の場合はnull
。レイアウトが無効の場合もnull
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
modelToView
、クラス: CompositeView
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)
viewToModel
、クラス: CompositeView
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)
getAlignment
、クラス: View
axis
- View.X_AXIS
またはView.Y_AXIS
IllegalArgumentException
- 軸が無効な場合public float getPreferredSpan(int axis)
getPreferredSpan
、クラス: View
axis
- View.X_AXIS
またはView.Y_AXIS
IllegalArgumentException
- 軸が無効な型View.getPreferredSpan(int)
public float getMinimumSpan(int axis)
getMinimumSpan
、クラス: View
axis
- View.X_AXIS
またはView.Y_AXIS
IllegalArgumentException
- 軸が無効な型View.getPreferredSpan(int)
public float getMaximumSpan(int axis)
getMaximumSpan
、クラス: View
axis
- View.X_AXIS
またはView.Y_AXIS
IllegalArgumentException
- 軸が無効な型View.getPreferredSpan(int)
protected boolean isAllocationValid()
protected boolean isBefore(int x, int y, Rectangle innerAlloc)
isBefore
、クラス: CompositeView
x
- X座標>= 0y
- Y座標>= 0innerAlloc
- 割り当てられた領域。インセットの内側の領域protected boolean isAfter(int x, int y, Rectangle innerAlloc)
isAfter
、クラス: CompositeView
x
- X座標>= 0y
- Y座標>= 0innerAlloc
- 割り当てられた領域。インセットの内側の領域protected View getViewAtPoint(int x, int y, Rectangle alloc)
getViewAtPoint
、クラス: CompositeView
x
- X座標>= 0y
- Y座標>= 0alloc
- 入口では親の内部割当て。出口で子の割当てに変更protected void childAllocation(int index, Rectangle alloc)
childAllocation
、クラス: CompositeView
index
- 割り当てる子ビューのインデックス。0以上でgetViewCount()より小さい値alloc
- 割り当てられる領域protected void layout(int width, int height)
width
- 幅(インセット内)>= 0height
- 高さ(インセット内)>= 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
の場合、1つ作成されるSizeRequirements
オブジェクトSizeRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
axis
のサイズ要件を計算します。axis
- 調査中の軸r
- SizeRequirements
オブジェクト。null
の場合、1つ作成される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
の場合、1つ作成される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
がインデックスn+1、WESTへのView
がインデックスn -1となるように、View
は左から右へレイアウトされます。双方向テキストなど一部の場合では、EASTへのView
をインデックスn+1ではなくインデックスn -1に、またはWESTへのView
をインデックスn - 1ではなくインデックスn+1にすることもできます。この場合、このメソッドはtrueを返し、View
が降順にレイアウトされていることを示します。そうでない場合はfalseを返し、View
が昇順にレイアウトされていることを示します。
レシーバがY_AXIS
に沿ってView
を配置している場合、position
とbias
の描画を行うView
上で同じメソッドを呼び出すことで値を返します。そうでない場合は、falseを返します。
flipEastAndWestAtEnds
、クラス: CompositeView
position
- モデルへの位置bias
- Position.Bias.Forward
またはPosition.Bias.Backward
position
やbias
の描画を行うView
の周りにあるView
が降順にレイアウトされている場合はtrue。そうでない場合はfalse バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.