java.lang.Object
javax.swing.text.View
javax.swing.text.CompositeView
javax.swing.text.BoxView
- すべての実装されたインタフェース:
SwingConstants
- 直系の既知のサブクラス:
BlockView
,FlowView
,TableView
,TableView.TableCell
,TableView.TableRow
,WrappedPlainView
,ZoneView
public class BoxView extends CompositeView
ビューは、ビューの子を軸に沿ってタイリングすることで、1つのボックスの形状に配置します。 このボックスは、子の配列をするところでは子の柔軟性も考慮されるという点で、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
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明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
指定されたDocumentEvent
を、モデルへの変更について通知する必要のある子ビューに転送します。float
getAlignment
(int axis) 軸に沿ったこのビューの望ましいレイアウトを決定します。int
getAxis()
タイル軸のプロパティを取得します。getChildAllocation
(int index, Shape a) 指定された子ビューの割り当てを取得します。int
ボックスの現在の高さを返します。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
ある点が、割り当てられた領域のあとにあるかどうかを判定します。protected boolean
子への割当てが現在も有効かどうかを判定します。protected boolean
ある点が、割り当てられた領域の前にあるかどうかを判定します。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) ボックスの副軸(つまり、それが表す軸に直角の軸)をレイアウトします。modelToView
(int pos, Shape a, Position.Bias b) ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。void
特定のレンダリング表面とその表面上の領域を使用してBoxView
をレンダリングします。protected void
paintChild
(Graphics g, Rectangle alloc, int index) 子をペイントします。void
preferenceChanged
(View child, boolean width, boolean height) 子に呼び出され、そのスパンの設定が変更されたことを示します。void
レイアウトを無効にして、要求または割当てのキャッシュのサイズを変更します。void
setAxis
(int axis) タイル軸のプロパティを設定します。void
setSize
(float width, float height) ビューのサイズを設定します。int
viewToModel
(float x, float y, Shape a, Position.Bias[] bias) ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。クラス javax.swing.text.CompositeViewで宣言されたメソッド
getBottomInset, getInsideAllocation, getLeftInset, getNextEastWestVisualPositionFrom, getNextNorthSouthVisualPositionFrom, getNextVisualPositionFrom, getRightInset, getTopInset, getView, getViewAtPosition, getViewCount, getViewIndex, getViewIndexAtPosition, loadChildren, modelToView, setInsets, setParagraphInsets, setParent
クラス 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
-
コンストラクタの詳細
-
BoxView
public BoxView(Element elem, int axis) BoxView
を構築します。- パラメータ:
elem
- このビューが扱う要素axis
-View.X_AXIS
またはView.Y_AXIS
-
-
メソッドの詳細
-
getAxis
public int getAxis()タイル軸のプロパティを取得します。 これは、子ビューがタイリングされる軸です。- 戻り値:
- ボックスの主軸。
View.X_AXIS
またはView.Y_AXIS
- 導入されたバージョン:
- 1.3
-
setAxis
public void setAxis(int axis) タイル軸のプロパティを設定します。 これは、子ビューがタイリングされる軸です。- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 導入されたバージョン:
- 1.3
-
layoutChanged
public void layoutChanged(int axis) 軸に沿ったレイアウトを無効にします。 レイアウトの子のビューの推奨設定が変更されていると、自動的に無効になります。 推奨設定が変更されていないときに再計算する必要がある場合もあります。 このメソッドを呼び出せば、レイアウトを無効としてマークできます。 一般に描画の場合、レイアウトはsetSize
メソッドが次回このビューに呼び出されたときに更新されます。- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 導入されたバージョン:
- 1.3
-
isLayoutValid
protected boolean isLayoutValid(int axis) 指定された軸に沿ってレイアウトが有効かどうかを決定します。- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 戻り値:
- 指定された軸に沿ってレイアウトが有効な場合
- 導入されたバージョン:
- 1.4
-
paintChild
子をペイントします。 デフォルトの機能はそれだけですが、サブクラスはこれを使って、子に関連するものを描画できます。- パラメータ:
g
- グラフィックス・コンテキストalloc
- ペイントのために割り当てられた領域index
- 子のインデックス。0以上でgetViewCount()より小さい値
-
replace
public void replace(int index, int length, View[] elems) レイアウトを無効にして、要求または割当てのキャッシュのサイズを変更します。 子の割当ては、まだ以前のレイアウトにアクセスできますが、新しい子の座標とスパンは0になります。- オーバーライド:
replace
、クラスCompositeView
- パラメータ:
index
- 新規ビューを挿入するための、子ビューの開始インデックス。この値は0以上で、getViewCount以下length
- 削除する既存の子ビューの数。この値は0以上で、(getViewCount() - offset)以下elems
- 追加する子ビュー。追加される子がない場合は、null
も可(削除に便利)
-
forwardUpdate
protected void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f) 指定されたDocumentEvent
を、モデルへの変更について通知する必要のある子ビューに転送します。 先頭の子のボックスの部分をボックスの最後に転送する前に、子がその要件を変更しており、割当てが有効であった場合、再ペイントされます。- オーバーライド:
forwardUpdate
、クラスView
- パラメータ:
ec
- このビューが扱う要素への変更。変更がなかった場合、null
になる可能性があるe
- 関連するドキュメントからの変更情報a
- ビューの現在の割当てf
- ビューが子を持つ場合に再構築に使用するファクトリ- 導入されたバージョン:
- 1.3
- 関連項目:
-
preferenceChanged
public void preferenceChanged(View child, boolean width, boolean height) 子に呼び出され、そのスパンの設定が変更されたことを示します。 次回に子の割当てが必要なときに新しく計算が実行されるように、キャッシュされたレイアウト情報を捨てるために実装されています。- オーバーライド:
preferenceChanged
、クラスView
- パラメータ:
child
- 子ビューwidth
- 幅の設定が変更された場合にtrueheight
- 高さの設定が変更された場合にtrue- 関連項目:
-
getResizeWeight
public int getResizeWeight(int axis) サイズ変更のウエイトを取得します。 値が0以下の場合はサイズ変更できません。- オーバーライド:
getResizeWeight
、クラスView
- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 戻り値:
- ウエイト
- 例外:
IllegalArgumentException
- 軸が無効な場合
-
setSize
public void setSize(float width, float height) ビューのサイズを設定します。 これにより、ビューでレイアウト情報がキャッシュされていると、ビューのレイアウトが行われます。 この実装では、インセット内のサイズを使用してレイアウト・メソッドが呼び出されます。 -
paint
特定のレンダリング表面とその表面上の領域を使用してBoxView
をレンダリングします。 指定されたGraphics
のクリップ境界を交差する子だけが描画されます。 -
getChildAllocation
指定された子ビューの割り当てを取得します。 さまざまなビューの配置場所を探せます。 レイアウトが無効な場合はnull
を返すために実装し、そうでない場合はスーパー・クラスが実行されます。- オーバーライド:
getChildAllocation
、クラスCompositeView
- パラメータ:
index
- 子のインデックス。0以上でgetViewCount()より小さい値a
- このビューに対する割当て- 戻り値:
- 子に対する割当て。
a
がnull
の場合はnull
。レイアウトが無効の場合もnull
-
modelToView
public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。 スーパー・クラスを呼び出す前に、割当てが有効であることを確認できます。- オーバーライド:
modelToView
、クラスCompositeView
- パラメータ:
pos
- 変換対象の位置>= 0a
- 描画するために割り当てられた領域b
-Position.Bias.Forward
またはPosition.Bias.Backward
のバイアス値- 戻り値:
- 指定された位置のバウンディング・ボックス
- 例外:
BadLocationException
- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合- 関連項目:
-
viewToModel
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
- 戻り値:
- 指定されたビュー内の点をもっとも適切に表現するモデル内の位置>= 0
- 関連項目:
-
getAlignment
public float getAlignment(int axis) 軸に沿ったこのビューの望ましいレイアウトを決定します。 この実装が提供するのは、タイルされた軸と直交する軸に並べられた整列位置に沿って子を配置するために必要な、全体的な整列です。 タイルされた軸は、中央揃え、すなわち0.5fにする必要があります。- オーバーライド:
getAlignment
、クラスView
- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 戻り値:
- 適切な配置。0.0f以上で、1.0f以下。値の範囲は0.0から1.0で、0は起点への配置、1.0は起点から最大に離れた配置を表す。0.5は、ビューの中央への配置になる
- 例外:
IllegalArgumentException
- 軸が無効な場合
-
getPreferredSpan
public float getPreferredSpan(int axis) このビューに適切なスパンを軸に沿って指定します。- 定義:
getPreferredSpan
、クラスView
- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 戻り値:
- ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
- 例外:
IllegalArgumentException
- 軸が無効な型
-
getMinimumSpan
public float getMinimumSpan(int axis) このビューの最小スパンを軸に沿って指定します。- オーバーライド:
getMinimumSpan
、クラスView
- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 戻り値:
- ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
- 例外:
IllegalArgumentException
- 軸が無効な型- 関連項目:
-
getMaximumSpan
public float getMaximumSpan(int axis) このビューの最大スパンを軸に沿って指定します。- オーバーライド:
getMaximumSpan
、クラスView
- パラメータ:
axis
-View.X_AXIS
またはView.Y_AXIS
- 戻り値:
- ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
- 例外:
IllegalArgumentException
- 軸が無効な型- 関連項目:
-
isAllocationValid
protected boolean isAllocationValid()子への割当てが現在も有効かどうかを判定します。- 戻り値:
- 割当てが現在も有効な場合はtrue
-
isBefore
protected boolean isBefore(int x, int y, Rectangle innerAlloc) ある点が、割り当てられた領域の前にあるかどうかを判定します。- 定義:
isBefore
、クラスCompositeView
- パラメータ:
x
- X座標>= 0y
- Y座標>= 0innerAlloc
- 割り当てられた領域。インセットの内側の領域- 戻り値:
- 点が領域の前にある場合はtrue、そうでない場合はfalse
-
isAfter
protected boolean isAfter(int x, int y, Rectangle innerAlloc) ある点が、割り当てられた領域のあとにあるかどうかを判定します。- 定義:
isAfter
、クラスCompositeView
- パラメータ:
x
- X座標>= 0y
- Y座標>= 0innerAlloc
- 割り当てられた領域。インセットの内側の領域- 戻り値:
- 点が領域のあとにある場合はtrue、そうでない場合はfalse
-
getViewAtPoint
指定された座標の子ビューを取得します。- 定義:
getViewAtPoint
、クラスCompositeView
- パラメータ:
x
- X座標>= 0y
- Y座標>= 0alloc
- 入口では親の内部割当て。出口で子の割当てに変更- 戻り値:
- ビュー
-
childAllocation
protected void childAllocation(int index, Rectangle alloc) 子ビューに領域を割り当てます。- 定義:
childAllocation
、クラスCompositeView
- パラメータ:
index
- 割り当てる子ビューのインデックス。0以上でgetViewCount()より小さい値alloc
- 割り当てられる領域
-
layout
protected void layout(int width, int height) ボックスのレイアウトを実行します。- パラメータ:
width
- 幅(インセット内)>= 0height
- 高さ(インセット内)>= 0
-
getWidth
public int getWidth()ボックスの現在の幅を返します。 ボックスに割り当てられた最新の幅です。- 戻り値:
- ボックスの現在の幅
-
getHeight
public int getHeight()ボックスの現在の高さを返します。 ボックスに割り当てられた最新の高さです。- 戻り値:
- ボックスの現在の高さ
-
layoutMajorAxis
protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) ボックスの主軸(つまり、それが表す軸)をレイアウトします。 レイアウトの結果(各子のオフセットとスパン)は、主軸に沿った子への割り当てを表す指定された配列に配置されなければいけません。- パラメータ:
targetSpan
- ビューに指定されたスパンの合計。子をレイアウトするために使用されるaxis
- レイアウトされる軸offsets
- 各子ビューのビューの起点からのオフセット。これは戻り値であり、このメソッドの実装によって割り当てられるspans
- 各子ビューのスパン。これは戻り値であり、このメソッドの実装によって割り当てられる
-
layoutMinorAxis
protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans) ボックスの副軸(つまり、それが表す軸に直角の軸)をレイアウトします。 レイアウトの結果(各子のオフセットとスパン)は、副軸に沿った子への割り当てを表す指定された配列に配置されなければいけません。- パラメータ:
targetSpan
- ビューに指定されたスパンの合計。子をレイアウトするために使用されるaxis
- レイアウトされる軸offsets
- 各子ビューのビューの起点からのオフセット。これは戻り値であり、このメソッドの実装によって割り当てられるspans
- 各子ビューのスパン。これは戻り値であり、このメソッドの実装によって割り当てられる
-
calculateMajorAxisRequirements
protected SizeRequirements calculateMajorAxisRequirements(int axis, SizeRequirements r) 主軸axis
のサイズ要件を計算します。- パラメータ:
axis
- 調査中の軸r
-SizeRequirements
オブジェクト。null
の場合、1つ作成される- 戻り値:
- 新しく初期化された
SizeRequirements
オブジェクト - 関連項目:
-
calculateMinorAxisRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r) 副軸axis
のサイズ要件を計算します。- パラメータ:
axis
- 調査中の軸r
-SizeRequirements
オブジェクト。null
の場合、1つ作成される- 戻り値:
- 新しく初期化された
SizeRequirements
オブジェクト - 関連項目:
-
baselineLayout
protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans) 使用する領域の幅(または高さ)であるtargetSpan
を指定したBoxView
における、各子ビューの位置とエクステントを計算します。- パラメータ:
targetSpan
- ビューに指定されたスパンの合計。子をレイアウトするために使用されるaxis
- 調査中の軸。View.X_AXIS
またはView.Y_AXIS
offsets
- 空の配列。このメソッドによって各子ビューの位置を指定する値が割り当てられるspans
- 空の配列。このメソッドによって各子ビューのエクステントを指定する値が割り当てられる
-
baselineRequirements
protected SizeRequirements baselineRequirements(int axis, SizeRequirements r) 各子ビューのサイズを調べて、このBoxView
のサイズ要件を計算します。- パラメータ:
axis
- 調査中の軸r
-SizeRequirements
オブジェクト。null
の場合、1つ作成される- 戻り値:
- 新しく初期化された
SizeRequirements
オブジェクト
-
getOffset
protected int getOffset(int axis, int childIndex) 特定の子について、現在のレイアウトのオフセットを取得します。- パラメータ:
axis
- 調査中の軸childIndex
- 要求された子のインデックス- 戻り値:
- 指定された子のオフセット(位置)
-
getSpan
protected int getSpan(int axis, int childIndex) 特定の子について、現在のレイアウトのスパンを取得します。- パラメータ:
axis
- 調査中の軸childIndex
- 要求された子のインデックス- 戻り値:
- 指定された子のスパン(幅または高さ)
-
flipEastAndWestAtEnds
protected boolean flipEastAndWestAtEnds(int position, Position.Bias bias) 次のビューをどの方向に配置するかを決定します。 インデックスnのViewが考慮されます。 通常は、EASTへの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
-