JavaTM 2 Platform
Standard Ed. 5.0

javax.swing.text
クラス BoxView

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

ビューは、ビューの子を軸に沿ってタイリングすることで、ひとつのボックスの形状に配置します。このボックスは、子の配列をするところでは子の柔軟性も考慮されるという点で、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.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
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

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 になります。

オーバーライド:
クラス CompositeView 内の replace
パラメータ:
index - 新規ビューを挿入するための、子ビューの開始インデックス。この値は 0 以上で、getViewCount 以下
length - 削除する現在の子ビューの数。この値は 0 以上で、(getViewCount() - offset) 以下
elems - 追加する子ビュー。追加する子 (削除しやすい) がないことを示す場合は、null の可能性もある

forwardUpdate

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)

preferenceChanged

public void preferenceChanged(View child,
                              boolean width,
                              boolean height)
子に呼び出され、そのスパンの設定が変更されたことを示します。次回に子の割り当てが必要なときに新しく計算が実行されるように、キャッシュされたレイアウト情報を捨てるために実装されています。

オーバーライド:
クラス View 内の preferenceChanged
パラメータ:
child - 子ビュー
width - 幅の設定が変更された場合に true
height - 高さの設定が変更された場合に true
関連項目:
JComponent.revalidate()

getResizeWeight

public int getResizeWeight(int axis)
サイズ変更のウェイトを返します。値が 0 または負の数の場合、サイズ変更はできません。

オーバーライド:
クラス View 内の getResizeWeight
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ウェイト
例外:
IllegalArgumentException - 軸が無効な場合

setSize

public void setSize(float width,
                    float height)
ビューのサイズを設定します。これにより、ビューでレイアウト情報がキャッシュされていると、ビューのレイアウトが行われます。この実装では、インセット内のサイズを使用してレイアウトメソッドが呼び出されます。

オーバーライド:
クラス View 内の setSize
パラメータ:
width - 幅 >= 0
height - 高さ >= 0

paint

public void paint(Graphics g,
                  Shape allocation)
指定された描画表面およびその表面上の領域を使って BoxView を描画します。指定された Graphics のクリップ境界を交差する子だけが描画されます。

定義:
クラス View 内の paint
パラメータ:
g - 使用する描画表面
allocation - 描画のために割り当てられた領域
関連項目:
View.paint(java.awt.Graphics, java.awt.Shape)

getChildAllocation

public Shape getChildAllocation(int index,
                                Shape a)
指定された子ビューへの割り当てを取り出します。さまさまなビューの配置を探すことができます。レイアウトが無効な場合は null を返すために実装し、そうでない場合はスーパークラスが実行されます。

オーバーライド:
クラス CompositeView 内の getChildAllocation
パラメータ:
index - 子のインデックス >= 0 && < getViewCount()
a - このビューに対する割り当て
戻り値:
子に対する割り当て。anull の場合は null。レイアウトが無効の場合も null

modelToView

public Shape modelToView(int pos,
                         Shape a,
                         Position.Bias b)
                  throws BadLocationException
ドキュメントモデルの座標空間から、それにマップされるビューの座標空間へのマッピングを提供します。スーパークラスを呼び出す前に、割り当てが有効であることを確認できます。

オーバーライド:
クラス CompositeView 内の modelToView
パラメータ:
pos - 変換対象の位置 >= 0
a - 描画のために割り当てられた領域
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)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。

オーバーライド:
クラス CompositeView 内の viewToModel
パラメータ:
x - 変換するビュー位置の x 座標 >= 0
y - 変換するビュー位置の y 座標 >= 0
a - 描画のために割り当てられた領域
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 にする必要があります。

オーバーライド:
クラス View 内の getAlignment
パラメータ:
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)
このビューに適切なスパンを軸に沿って指定します。

定義:
クラス View 内の getPreferredSpan
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューの描画対象のスパン >= 0。通常、ビューは返されたスパン内に描画されることになるが、保証はない。親はビューのサイズ変更や分割を行う可能性がある
例外:
IllegalArgumentException - 軸のタイプが無効な場合
関連項目:
View.getPreferredSpan(int)

getMinimumSpan

public float getMinimumSpan(int axis)
このビューの最小スパンを軸に沿って指定します。

オーバーライド:
クラス View 内の getMinimumSpan
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューの描画対象のスパン >= 0。通常、ビューは返されたスパン内に描画されることになるが、保証はない。親はビューのサイズ変更や分割を行う可能性がある
例外:
IllegalArgumentException - 軸のタイプが無効な場合
関連項目:
View.getPreferredSpan(int)

getMaximumSpan

public float getMaximumSpan(int axis)
このビューの最大スパンを軸に沿って指定します。

オーバーライド:
クラス View 内の getMaximumSpan
パラメータ:
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)
ある点が、割り当てられた領域の前にあるかどうかを判定します。

定義:
クラス CompositeView 内の isBefore
パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
innerAlloc - 割り当てられた領域。インセットの内側の領域
戻り値:
点が領域の前にある場合は true、そうでない場合は false

isAfter

protected boolean isAfter(int x,
                          int y,
                          Rectangle innerAlloc)
ある点が、割り当てられた領域の後にあるかどうかを判定します。

定義:
クラス CompositeView 内の isAfter
パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
innerAlloc - 割り当てられた領域。インセットの内側の領域
戻り値:
点が領域の後にある場合は true、そうでない場合は false

getViewAtPoint

protected View getViewAtPoint(int x,
                              int y,
                              Rectangle alloc)
指定された座標の子ビューを取り出します。

定義:
クラス CompositeView 内の getViewAtPoint
パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
alloc - 入口では親の内部割り当て。出口で子の割り当てに変更
戻り値:
ビュー

childAllocation

protected void childAllocation(int index,
                               Rectangle alloc)
子ビューに領域を割り当てます。

定義:
クラス CompositeView 内の childAllocation
パラメータ:
index - 割り当てる子ビューのインデックス >= 0 && < getViewCount()
alloc - 割り当てられる領域

layout

protected void layout(int width,
                      int height)
ボックスのレイアウトを実行します。

パラメータ:
width - 幅 (インセット内) >= 0
height - 高さ (インセット内) >= 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_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 を配置している場合、positionbias の描画を行う View 上で同じメソッドを呼び出すことで値を返します。そうでない場合は、false を返します。

オーバーライド:
クラス CompositeView 内の flipEastAndWestAtEnds
パラメータ:
position - モデルへの位置
bias - Position.Bias.Forward または Position.Bias.Backward
戻り値:
positionbias の描画を行う View の周りにある View が降順にレイアウトされている場合は、true。そうでない場合は false

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。