- 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 voidbaselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)使用する領域の幅(または高さ)であるtargetSpanを指定したBoxViewにおける、各子ビューの位置とエクステントを計算します。protected SizeRequirementsbaselineRequirements(int axis, SizeRequirements r)各子ビューのサイズを調べて、このBoxViewのサイズ要件を計算します。protected SizeRequirementscalculateMajorAxisRequirements(int axis, SizeRequirements r)主軸axisのサイズ要件を計算します。protected SizeRequirementscalculateMinorAxisRequirements(int axis, SizeRequirements r)副軸axisのサイズ要件を計算します。protected voidchildAllocation(int index, Rectangle alloc)子ビューに領域を割り当てます。protected booleanflipEastAndWestAtEnds(int position, Position.Bias bias)次のビューをどの方向に配置するかを決定します。protected voidforwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)指定されたDocumentEventを、モデルへの変更について通知する必要のある子ビューに転送します。floatgetAlignment(int axis)軸に沿ったこのビューの望ましいレイアウトを決定します。intgetAxis()タイル軸のプロパティを取得します。ShapegetChildAllocation(int index, Shape a)指定された子ビューの割り当てを取得します。intgetHeight()ボックスの現在の高さを返します。floatgetMaximumSpan(int axis)このビューの最大スパンを軸に沿って指定します。floatgetMinimumSpan(int axis)このビューの最小スパンを軸に沿って指定します。protected intgetOffset(int axis, int childIndex)特定の子について、現在のレイアウトのオフセットを取得します。floatgetPreferredSpan(int axis)このビューに適切なスパンを軸に沿って指定します。intgetResizeWeight(int axis)サイズ変更のウエイトを取得します。protected intgetSpan(int axis, int childIndex)特定の子について、現在のレイアウトのスパンを取得します。protected ViewgetViewAtPoint(int x, int y, Rectangle alloc)指定された座標の子ビューを取得します。intgetWidth()ボックスの現在の幅を返します。protected booleanisAfter(int x, int y, Rectangle innerAlloc)ある点が、割り当てられた領域のあとにあるかどうかを判定します。protected booleanisAllocationValid()子への割当てが現在も有効かどうかを判定します。protected booleanisBefore(int x, int y, Rectangle innerAlloc)ある点が、割り当てられた領域の前にあるかどうかを判定します。protected booleanisLayoutValid(int axis)指定された軸に沿ってレイアウトが有効かどうかを決定します。protected voidlayout(int width, int height)ボックスのレイアウトを実行します。voidlayoutChanged(int axis)軸に沿ったレイアウトを無効にします。protected voidlayoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)ボックスの主軸(つまり、それが表す軸)をレイアウトします。protected voidlayoutMinorAxis(int targetSpan, int axis, int[] offsets, int[] spans)ボックスの副軸(つまり、それが表す軸に直角の軸)をレイアウトします。ShapemodelToView(int pos, Shape a, Position.Bias b)ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。voidpaint(Graphics g, Shape allocation)特定のレンダリング表面とその表面上の領域を使用してBoxViewをレンダリングします。protected voidpaintChild(Graphics g, Rectangle alloc, int index)子をペイントします。voidpreferenceChanged(View child, boolean width, boolean height)子に呼び出され、そのスパンの設定が変更されたことを示します。voidreplace(int index, int length, View[] elems)レイアウトを無効にして、要求または割当てのキャッシュのサイズを変更します。voidsetAxis(int axis)タイル軸のプロパティを設定します。voidsetSize(float width, float height)ビューのサイズを設定します。intviewToModel(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
protected void paintChild(Graphics g, Rectangle alloc, int index)
子をペイントします。 デフォルトの機能はそれだけですが、サブクラスはこれを使って、子に関連するものを描画できます。- パラメータ:
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
- 関連項目:
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)
-
preferenceChanged
public void preferenceChanged(View child, boolean width, boolean height)
子に呼び出され、そのスパンの設定が変更されたことを示します。 次回に子の割当てが必要なときに新しく計算が実行されるように、キャッシュされたレイアウト情報を捨てるために実装されています。- オーバーライド:
preferenceChanged、クラスView- パラメータ:
child- 子ビューwidth- 幅の設定が変更された場合にtrueheight- 高さの設定が変更された場合にtrue- 関連項目:
JComponent.revalidate()
-
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
public void paint(Graphics g, Shape allocation)
特定のレンダリング表面とその表面上の領域を使用してBoxViewをレンダリングします。 指定されたGraphicsのクリップ境界を交差する子だけが描画されます。- 定義:
paint、クラスView- パラメータ:
g- 使用する描画表面allocation- 描画するために割り当てられた領域- 関連項目:
View.paint(java.awt.Graphics, java.awt.Shape)
-
getChildAllocation
public Shape getChildAllocation(int index, Shape a)
指定された子ビューの割り当てを取得します。 さまざまなビューの配置場所を探せます。 レイアウトが無効な場合は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- 指定された位置が、関連するドキュメント内の有効な位置を示さない場合- 関連項目:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)
-
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
- 関連項目:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])
-
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- 軸が無効な型- 関連項目:
View.getPreferredSpan(int)
-
getMinimumSpan
public float getMinimumSpan(int axis)
このビューの最小スパンを軸に沿って指定します。- オーバーライド:
getMinimumSpan、クラスView- パラメータ:
axis-View.X_AXISまたはView.Y_AXIS- 戻り値:
- ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
- 例外:
IllegalArgumentException- 軸が無効な型- 関連項目:
View.getPreferredSpan(int)
-
getMaximumSpan
public float getMaximumSpan(int axis)
このビューの最大スパンを軸に沿って指定します。- オーバーライド:
getMaximumSpan、クラスView- パラメータ:
axis-View.X_AXISまたはView.Y_AXIS- 戻り値:
- ビューの描画先のスパン>= 0。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
- 例外:
IllegalArgumentException- 軸が無効な型- 関連項目:
View.getPreferredSpan(int)
-
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
protected View getViewAtPoint(int x, int y, Rectangle alloc)
指定された座標の子ビューを取得します。- 定義:
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オブジェクト - 関連項目:
SizeRequirements
-
calculateMinorAxisRequirements
protected SizeRequirements calculateMinorAxisRequirements(int axis, SizeRequirements r)
副軸axisのサイズ要件を計算します。- パラメータ:
axis- 調査中の軸r-SizeRequirementsオブジェクト。nullの場合、1つ作成される- 戻り値:
- 新しく初期化された
SizeRequirementsオブジェクト - 関連項目:
SizeRequirements
-
baselineLayout
protected void baselineLayout(int targetSpan, int axis, int[] offsets, int[] spans)使用する領域の幅(または高さ)であるtargetSpanを指定したBoxViewにおける、各子ビューの位置とエクステントを計算します。- パラメータ:
targetSpan- ビューに指定されたスパンの合計。子をレイアウトするために使用されるaxis- 調査中の軸。View.X_AXISまたはView.Y_AXISoffsets- 空の配列。このメソッドによって各子ビューの位置を指定する値が割り当てられる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
-
-