JavaTM 2 Platform
Standard Ed. 5.0

javax.swing.text
クラス View

java.lang.Object
  上位を拡張 javax.swing.text.View
すべての実装されたインタフェース:
SwingConstants
直系の既知のサブクラス:
AsyncBoxView, ComponentView, CompositeView, GlyphView, IconView, ImageView, PlainView

public abstract class View
extends Object
implements SwingConstants

テキストパッケージの非常に重要な部分が View クラスです。名前が示すように、テキストモデルのビュー、あるいはテキストモデルの一部分を表します。このクラスはテキストコンポーネントの外観を扱います。このビューは、学習しなければならないまったく新しいものではなく、軽量コンポーネントと同様のコンポーネントになることを目的としています。実際、最初の View の実装は軽量コンポーネントでした。別の実装を優先し、Component の実装が捨て去られたのには、いくつかの理由があります。

  1. JDK バージョン 1.1 では、軽量コンポーネントをサポートする時間の余裕がほとんどありませんでした。テキストを使用目的とする必要がある場合について、コンポーネントを軽量化する時間がなかっただけではありません。JComponent に加えられた機能によりメモリの消費が増加したため、現状では重過ぎてテキストを表示することができません。

  2. レイアウトセマンティクスは、まったくテキスト向きではありません。コンポーネントの現在のレイアウトセマンティクスを変更すると、既存のアプリケーションを破壊してしまう可能性があります。

  3. コンポーネント API は整数型を使用しますが、バージョン 1.2 ではデバイスに依存しない浮動小数点の座標を使用できます。バージョン 1.1 および 1.2 の両方で機能する API は、移行によって生じる問題を最小化するのに便利です。旧バージョンの JDK 1.1 で機能している場合、View クラスは Shape インタフェースと float 引数を使って、Java 2 プラットフォームバージョン 1.2 以降の View 実装を可能にしています。

レイアウトへの関与

組み合わされた Component のビューには、doLayoutsetSize と同様の setSize メソッドがあります。Component のビューには、1 つの軸と、変更が識別できることを要求する子だけを無効にできる場合を除き、invalidate と同様の preferenceChanged メソッドがあります。

View はサイズを示します。これは、最小スパン、適切なスパン、最大スパンの 3 つの値で表示されます。ビューのレイアウトは各軸に依存しない方法で行われます。View 実装を正しく機能させるには、最小スパン <= 適切なスパン、適切なスパン <= 最大スパンとなります。

前の文は、この図について説明しています。

レイアウトに関するメソッドの最小設定は以下のとおりです。

何回も呼び出されるためには setSize メソッドを作成します (サイズが変更されない場合でも呼び出されることがあります)。setSize メソッドは通常、最新のレイアウトを必要とする操作を View 上で試みる前に、View のレイアウトが完了するように呼び出されます。ビューのサイズは必ず、そのビューで指定されたスパンの最小スパンから最大スパンの範囲内の値に設定されます。さらに、ビューで親に必要なレイアウト値に変更した場合、このビューは必ずその親の preferenceChanged メソッドを呼び出し親に引き受けを要求します。preferenceChanged が送られるまで、その親 View は変更を認識するように要求されていません。このため、親 View の実装は必要に応じて子の要求をキャッシュできます。呼び出し順序は次のようになります。

親ビューと子ビューとの間の呼び出し順序の例 (setSize、getMinimum、getPreferred、getMaximum、getAlignment、setSize の順)

ビューが子を持つ場合、正確な呼び出し順序は親ビューのレイアウト機能にかかっています。どの子に何を提供するのか、または子を 1 度に 1 つ繰り返し更新するのかを指定する前に、ビューは子の推奨設定を収集することがあります。

モデルの一部を描画する

ペイントメソッドで描画しますが、コンポーネントペイントメソッドとよく似ています。ビューは、かなり大きなツリーを生成する可能性があると考えられます。View の描画に対して以下のセマンティクスが用意されています。

レンダリングのためのメソッドは次のとおりです。

モデルの座標体系とビューの座標体系との間の変換

ビューオブジェクトはファクトリから生成されており、必ずしも特定のパターンに依存することはないので、モデルの空間表現を適切に位置づける変換を実行できなければなりません。次のメソッドがこれを実行します。

変換しようとする前にレイアウトを有効にする必要があります。この変換は有効ではないため、変更が DocumentEvent 経由でモデルから送られる間は変換しないでください。

モデルからの変更に応答する

ビュー全体がいくつもの分割部分で表現されていると (ビューを変更し、最小限の新規コードの書き込みをする場合、それが最適な状態ですが)、莫大な数の DocumentListener を保持するのは不可能です。各ビューがモデルに待機するとすれば、実際にはほとんどのビューは指定された時間に送られる変更に関われません。モデルにはビューに関する情報がないので、変更情報の伝送をフィルタする方法がありません。代わりに、ビュー階層自身が変更情報の送信を行います。ビュー階層のどのレベルでも、詳細な変更情報を効率よく分配するために、ビューの子に関する情報は十分にあります。したがって、変更はビュー階層のルートから送られます。これは次のメソッドが実行します。


フィールドの概要
static int BadBreakWeight
          フォーマット目的とするには不完全な分割の機会であるビューを示すウェイトです。
static int ExcellentBreakWeight
          分割をサポートしているビューを示すウェイトで、分割するのに適した位置であることを表わしています。
static int ForcedBreakWeight
          分割をサポートしているビューを示すウェイトで、子を分割することで子をフォーマットするビューに配置されている場合に、ビューを正しく表わすには分割しなければなりません。
static int GoodBreakWeight
          分割をサポートしているビューを示すウェイトですが、もっと良い機会が存在する可能性があります。
static int X_AXIS
          フォーマット/分割処理の軸です。
static int 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
 
コンストラクタの概要
View(Element elem)
          新しい View オブジェクトを作成します。
 
メソッドの概要
 void append(View v)
          1 つの子ビューを追加します。
 View breakView(int axis, int offset, float pos, float len)
          指定された軸でこのビューの分割を試みます。
 void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
          このビューが扱う位置でドキュメントの属性が変更されたことを通知します。
 View createFragment(int p0, int p1)
          要素の一部分を表すビューを作成します。
protected  void forwardUpdate(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a, ViewFactory f)
          指定された DocumentEvent をモデルの変更通知が必要な子ビューに転送します。
protected  void forwardUpdateToView(View v, DocumentEvent e, Shape a, ViewFactory f)
          指定された子ビューに DocumentEvent を転送します。
 float getAlignment(int axis)
          軸に沿ったこのビューの望ましいレイアウトを決定します。
 AttributeSet getAttributes()
          描画するときに使用する属性を取り出します。
 int getBreakWeight(int axis, float pos, float len)
          このビューで分割のウェイトがどのくらい適切かを示します。
 Shape getChildAllocation(int index, Shape a)
          指定された子ビューの割り当てを取り出します。
 Container getContainer()
          ビューを収容するコンテナを取り出します。
 Document getDocument()
          ビューに関連したモデルを取り出します。
 Element getElement()
          このビューがマッピングされる対象の構造部分を取り出します。
 int getEndOffset()
          このビューが扱うモデルの一部を取り出します。
 Graphics getGraphics()
          描画のための Graphics を取得します。
 float getMaximumSpan(int axis)
          このビューの最大スパンを軸に沿って指定します。
 float getMinimumSpan(int axis)
          このビューの最小スパンを軸に沿って指定します。
 int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
          キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。
 View getParent()
          ビューの親を返します。
abstract  float getPreferredSpan(int axis)
          このビューに適切なスパンを軸に沿って指定します。
 int getResizeWeight(int axis)
          指定された軸に沿ってビューのサイズを変更できるかどうかを指定します。
 int getStartOffset()
          このビューが扱うモデルの一部を取り出します。
 String getToolTipText(float x, float y, Shape allocation)
          指定された位置にあるツールヒントのテキストを返します。
 View getView(int n)
          n 番目の子ビューを返します。
 int getViewCount()
          このビュー内のビューの数を返します。
 ViewFactory getViewFactory()
          ビュー階層を供給している ViewFactory の実装を取り出します。
 int getViewIndex(float x, float y, Shape allocation)
          ビュー内の指定された位置を表す子ビューインデックスを返します。
 int getViewIndex(int pos, Position.Bias b)
          モデル内の指定された位置を示す子ビューインデックスを返します。
 void insert(int offs, View v)
          1 つの子ビューを挿入します。
 void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
          このビューが扱う位置でドキュメントに何かが挿入されたことを通知します。
 boolean isVisible()
          ビューが可視かどうかを示す boolean 型の値を返します。
 Shape modelToView(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
          指定した範囲について、ドキュメントモデル座標空間からビュー座標空間へのマップを提供します。
 Shape modelToView(int pos, Shape a)
          推奨されていません。 
abstract  Shape modelToView(int pos, Shape a, Position.Bias b)
          指定した文字について、ドキュメントモデル座標空間からビュー座標空間へのマップを提供します。
abstract  void paint(Graphics g, Shape allocation)
          指定された描画表面とその領域を使って描画します。
 void preferenceChanged(View child, boolean width, boolean height)
          子ビューは親でこのメソッドを呼び出し、設定が変更されたこと、および再度レイアウトが考慮されなければならないことを示すことができます。
 void remove(int i)
          指定された位置にある子を 1 つ削除します。
 void removeAll()
          すべての子を削除します。
 void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
          このビューが扱う位置でドキュメントから何かが削除されたことを通知します。
 void replace(int offset, int length, View[] views)
          子ビューを置換します。
 void setParent(View parent)
          このビューの親ビューを確立します。
 void setSize(float width, float height)
          ビューのサイズを設定します。
protected  boolean updateChildren(DocumentEvent.ElementChange ec, DocumentEvent e, ViewFactory f)
          モデルが変更されたという通知を受け取ると、子ビューを更新します。
protected  void updateLayout(DocumentEvent.ElementChange ec, DocumentEvent e, Shape a)
          モデルから変更の通知を受け取った場合に、レイアウトを更新します。
 int viewToModel(float x, float y, Shape a)
          推奨されていません。 
abstract  int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
          ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

BadBreakWeight

public static final int BadBreakWeight
フォーマット目的とするには不完全な分割の機会であるビューを示すウェイトです。この値は、ビューが断片化をサポートするように記述されていないため、ビューをフラグメントに分割してはならないことを示します。

関連項目:
getBreakWeight(int, float, float), GoodBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, 定数フィールド値

GoodBreakWeight

public static final int GoodBreakWeight
分割をサポートしているビューを示すウェイトですが、もっと良い機会が存在する可能性があります。

関連項目:
getBreakWeight(int, float, float), BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, 定数フィールド値

ExcellentBreakWeight

public static final int ExcellentBreakWeight
分割をサポートしているビューを示すウェイトで、分割するのに適した位置であることを表わしています。

関連項目:
getBreakWeight(int, float, float), BadBreakWeight, GoodBreakWeight, ForcedBreakWeight, 定数フィールド値

ForcedBreakWeight

public static final int ForcedBreakWeight
分割をサポートしているビューを示すウェイトで、子を分割することで子をフォーマットするビューに配置されている場合に、ビューを正しく表わすには分割しなければなりません。

関連項目:
getBreakWeight(int, float, float), BadBreakWeight, GoodBreakWeight, ExcellentBreakWeight, 定数フィールド値

X_AXIS

public static final int X_AXIS
フォーマット/分割処理の軸です。

関連項目:
定数フィールド値

Y_AXIS

public static final int Y_AXIS
フォーマット/分割処理の軸です。

関連項目:
定数フィールド値
コンストラクタの詳細

View

public View(Element elem)
新しい View オブジェクトを作成します。

パラメータ:
elem - 表現対象の Element
メソッドの詳細

getParent

public View getParent()
ビューの親を返します。

戻り値:
親。親が存在しない場合は null

isVisible

public boolean isVisible()
ビューが可視かどうかを示す boolean 型の値を返します。デフォルトではすべてのビューが可視です。

戻り値:
常に true を返す

getPreferredSpan

public abstract float getPreferredSpan(int axis)
このビューに適切なスパンを軸に沿って指定します。

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューの描画先のスパン。通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。親はビューのサイズの変更や分割を行う可能性がある
関連項目:
getPreferredSpan(int)

getMinimumSpan

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

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューを描画できる最小スパン
関連項目:
getPreferredSpan(int)

getMaximumSpan

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

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ビューを描画できる最大スパン
関連項目:
getPreferredSpan(int)

preferenceChanged

public void preferenceChanged(View child,
                              boolean width,
                              boolean height)
子ビューは親でこのメソッドを呼び出し、設定が変更されたこと、および再度レイアウトが考慮されなければならないことを示すことができます。デフォルトでは、このメソッドは単純に次の親に向かって通知します。ルートビューは、関連したテキストコンポーネントで revalidate を呼び出します。

パラメータ:
child - 子ビュー
width - 幅の設定が変更されている場合は true
height - 高さの設定が変更されている場合は true
関連項目:
JComponent.revalidate()

getAlignment

public float getAlignment(int axis)
軸に沿ったこのビューの望ましいレイアウトを決定します。望ましいレイアウトが返されます。値の範囲は 0.0 〜 1.0 で、0 は起点への配置、1.0 は起点から最大に離れた配置を表します。0.5 は、ビューの中央への配置になります。

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
値 0.5

paint

public abstract void paint(Graphics g,
                           Shape allocation)
指定された描画表面とその領域を使って描画します。ビューは、指定された割り当てにそれ自体を描画するために、レイアウトを行なったり、子ビューを作成したりする必要がある場合があります。

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

setParent

public void setParent(View parent)
このビューの親ビューを確立します。親ビューが正しく機能している場合、このメソッドはほかのメソッドよりも必ず前に呼び出されます。また、このメソッドは階層からビューが削除されたことを示すためにも呼び出されるので、最後に呼び出されるメソッドでもあります。このメソッドが呼び出されて親が null に設定されるときは、各子に対しても同じことがこのメソッドによって行われ、ビューツリーから切断されたという通知が伝達されます。このメソッドを再実装する場合は、super.setParent() を呼び出す必要があります。

パラメータ:
parent - 新しい親。ビューが親から削除される場合は null

getViewCount

public int getViewCount()
このビュー内のビューの数を返します。デフォルトでは複合ビューにならないので、このメソッドは 0 を返します。

戻り値:
ビューの数 >= 0
関連項目:
getViewCount()

getView

public View getView(int n)
n 番目の子ビューを返します。デフォルトでは子がないので、このメソッドは null を返します。

パラメータ:
n - 取得するビューの番号 >= 0 && < getViewCount()
戻り値:
ビュー

removeAll

public void removeAll()
すべての子を削除します。replace の簡易呼び出しです。

導入されたバージョン:
1.3

remove

public void remove(int i)
指定された位置にある子を 1 つ削除します。replace の簡易呼び出しです。

導入されたバージョン:
1.3

insert

public void insert(int offs,
                   View v)
1 つの子ビューを挿入します。replace の簡易呼び出しです。

パラメータ:
offs - ビューを挿入する位置のオフセット >= 0
v - ビュー
導入されたバージョン:
1.3
関連項目:
replace(int, int, javax.swing.text.View[])

append

public void append(View v)
1 つの子ビューを追加します。replace の簡易呼び出しです。

パラメータ:
v - ビュー
導入されたバージョン:
1.3
関連項目:
replace(int, int, javax.swing.text.View[])

replace

public void replace(int offset,
                    int length,
                    View[] views)
子ビューを置換します。削除するビューがない場合は、このメソッドが挿入として動作し、追加するビューがない場合は、このメソッドが削除として動作します。削除されるビューは null に設定された親を持ち、削除されるビューの内部を参照しているので、ガベージコレクトが可能です。デフォルトではビューに子がないので、実装しても何も行われません。

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

getViewIndex

public int getViewIndex(int pos,
                        Position.Bias b)
モデル内の指定された位置を示す子ビューインデックスを返します。デフォルトでは、ビューに子がないので、あらゆる位置に対して有効な子インデックスがないことを表すには、-1 を返すように実装されています。

パラメータ:
pos - 位置 >= 0
戻り値:
指定された位置を表すビューのインデックス。位置を表すビューがない場合は、-1
導入されたバージョン:
1.3

getChildAllocation

public Shape getChildAllocation(int index,
                                Shape a)
指定された子ビューの割り当てを取り出します。このメソッドを使用すると、ビューがそれらの位置を格納していることを仮定することなく、さまざまなビューがどこにあるかを知ることができます。デフォルトでは子ビューを持たないので、このメソッドは null を返します。

パラメータ:
index - 子のインデックス >= 0 && < getViewCount()
a - このビューに対する割り当て
戻り値:
子に対する割り当て

getNextVisualPositionFrom

public int getNextVisualPositionFrom(int pos,
                                     Position.Bias b,
                                     Shape a,
                                     int direction,
                                     Position.Bias[] biasRet)
                              throws BadLocationException
キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。ビューによっては、可視ではないか、モデル内と同じ順序でないか、またはモデル内の位置へのアクセスを許可しない場合があります。

パラメータ:
pos - 変換対象の位置 >= 0
a - 割り当てられた描画領域
direction - 現在位置からの方向。これは、キーボードに通常存在する矢印キーと見なすことができ、 次のどれかになる
  • SwingConstants.WEST
  • SwingConstants.EAST
  • SwingConstants.NORTH
  • SwingConstants.SOUTH
戻り値:
次の可視の位置をもっともよく表すモデル内の位置
例外:
BadLocationException - @exception IllegalArgumentException direction が上記の適正値のどれでもない場合

modelToView

public abstract Shape modelToView(int pos,
                                  Shape a,
                                  Position.Bias b)
                           throws BadLocationException
指定した文字について、ドキュメントモデル座標空間からビュー座標空間へのマップを提供します。

パラメータ:
pos - 望ましい文字の位置 (>= 0)
a - ビューの領域。要求された文字が含まれる
b - 位置が 2 つのビューの境界である場合に、オフセットによって表される直前の文字または次の文字へのバイアス。b の値は次のどれかになる
  • Position.Bias.Forward
  • Position.Bias.Backward
戻り値:
ビュー座標空間内の、指定した位置にある文字のバウンディングボックス
例外:
BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を表さない場合
IllegalArgumentException - b が上記の正当な Position.Bias 値のどれでもない場合
関連項目:
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

modelToView

public Shape modelToView(int p0,
                         Position.Bias b0,
                         int p1,
                         Position.Bias b1,
                         Shape a)
                  throws BadLocationException
指定した範囲について、ドキュメントモデル座標空間からビュー座標空間へのマップを提供します。指定した範囲は、最初の文字の位置と最後の文字の位置との和集合として作成されます。

パラメータ:
p0 - 最初の文字の位置 >= 0
b0 - 位置が 2 つのビューの境界である場合に、オフセットによって表される直前の文字または次の文字への最初の文字のバイアス。b0 の値は次のどれかになる
  • Position.Bias.Forward
  • Position.Bias.Backward
p1 - 最後の文字の位置 (>= 0)
b1 - 2 番目の文字位置におけるバイアス。上記の適正な値のどれか
a - ビューの領域で。要求された範囲が含まれる
戻り値:
最初の文字の位置と最後の文字の位置とで指定される範囲の和集合であるバウンディングボックス
例外:
BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を表さない場合
IllegalArgumentException - b0 または b1 が上記の適正な Position.Bias 値のどれでもない場合
関連項目:
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

viewToModel

public abstract int viewToModel(float x,
                                float y,
                                Shape a,
                                Position.Bias[] biasReturn)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。biasReturn 引数は、指定された点がモデル内の次の文字と近いのか、あるいはモデル内の前の文字と近いのかを示します。

パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
a - 割り当てられた描画領域
戻り値:
ビュー内の指定された点をもっともよく表すモデル内の位置 >= 0。biasReturn 引数は、指定された点がモデル内の次の文字と近いのか、あるいはモデル内の前の文字と近いのかを示す

insertUpdate

public void insertUpdate(DocumentEvent e,
                         Shape a,
                         ViewFactory f)
このビューが扱う位置でドキュメントに何かが挿入されたことを通知します。サブクラスへの負荷を軽くするため、この機能は、サブクラスが再実装できる以下の呼び出しに拡張されます。
  1. このビューが扱う要素に対して変更があった場合、updateChildren が呼び出される。このビューが、子の要素を示す子ビューを持つ場合、子ビューが正しくモデルを表すように、このメソッドは必要なことをすべて実行する
  2. DocumentEvent を適切な子ビューに転送するために、forwardUpdate が呼び出される
  3. ビューのレイアウトを修復、再スケジュール、または何も処理しないための機会をビューに与えるために、updateLayout が呼び出される

パラメータ:
e - 関連するドキュメントからの変更情報
a - ビューの現在の割り当て
f - ビューが子を持つ場合に再構築に使用するファクトリ
関連項目:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

removeUpdate

public void removeUpdate(DocumentEvent e,
                         Shape a,
                         ViewFactory f)
このビューが扱う位置でドキュメントから何かが削除されたことを通知します。サブクラスへの負荷を軽くするため、この機能は、サブクラスが再実装できる以下の呼び出しに拡張されます。
  1. このビューが扱う要素に対して変更があった場合、updateChildren が呼び出される。このビューが、子の要素を示す子ビューを持つ場合、子ビューが正しくモデルを表すように、このメソッドは必要なことをすべて実行する
  2. DocumentEvent を適切な子ビューに転送するために、forwardUpdate が呼び出される
  3. ビューのレイアウトを修復、再スケジュール、または何も処理しないための機会をビューに与えるために、updateLayout が呼び出される

パラメータ:
e - 関連するドキュメントからの変更情報
a - ビューの現在の割り当て
f - ビューが子を持つ場合に再構築に使用するファクトリ
関連項目:
removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

changedUpdate

public void changedUpdate(DocumentEvent e,
                          Shape a,
                          ViewFactory f)
このビューが扱う位置でドキュメントの属性が変更されたことを通知します。サブクラスへの負荷を軽くするため、この機能は、サブクラスが再実装できる以下の呼び出しに拡張されます。
  1. このビューが扱う要素に対して変更があった場合、updateChildren が呼び出される。このビューが、子の要素を示す子ビューを持つ場合、子ビューが正しくモデルを表すように、このメソッドは必要なことをすべて実行する
  2. DocumentEvent を適切な子ビューに転送するために、forwardUpdate が呼び出される
  3. ビューのレイアウトを修復、再スケジュール、または何も処理しないための機会をビューに与えるために、updateLayout が呼び出される

パラメータ:
e - 関連するドキュメントからの変更情報
a - ビューの現在の割り当て
f - ビューが子を持つ場合に再構築に使用するファクトリ
関連項目:
changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

getDocument

public Document getDocument()
ビューに関連したモデルを取り出します。

戻り値:
ビューモデル。ない場合は null
関連項目:
getDocument()

getStartOffset

public int getStartOffset()
このビューが扱うモデルの一部を取り出します。

戻り値:
モデル内の開始オフセット >= 0
関連項目:
getStartOffset()

getEndOffset

public int getEndOffset()
このビューが扱うモデルの一部を取り出します。

戻り値:
モデル内の終了オフセット >= 0
関連項目:
getEndOffset()

getElement

public Element getElement()
このビューがマッピングされる対象の構造部分を取り出します。ビューは、要素の全体を扱わない場合があります。

戻り値:
対象
関連項目:
getElement()

getGraphics

public Graphics getGraphics()
描画のための Graphics を取得します。フォント文字を指定するのに使用されますが、出力ビューの場合はコンポーネントビューの場合と異なります。

戻り値:
描画用の Graphics オブジェクト
導入されたバージョン:
1.3

getAttributes

public AttributeSet getAttributes()
描画するときに使用する属性を取り出します。デフォルトでは、このメソッドは単純に関連する要素の属性を返します。ビュー固有の属性を追加できるようにするため、またはビューがサブクラスによるビュー固有の属性の変換を持てるようにするために属性へのアクセスを取得するには、要素を直接使用するのではなく、このメソッドを使用しなければなりません。各ビューは、描画またはレイアウトの目的のためにどの属性を認識するのかを記述しなければならず、またこのメソッドによって返される AttributeSet を介してそれらに常にアクセスしなければなりません。


breakView

public View breakView(int axis,
                      int offset,
                      float pos,
                      float len)
指定された軸でこのビューの分割を試みます。このメソッドは、子のフォーマットを目的とするビューによって呼び出されます。たとえば、段落のビューは通常その子を行に配置しようとし、テキストのチャンクを表すビューは小さく分割されることがあります。

このメソッドはビュー自体を返すために実装され、それは分割できないデフォルトの動作を表します。ビューが分割をサポートする場合、返されるビューの開始オフセットは指定されたオフセットでなければならず、終了オフセットは分割されるビューの終了オフセット以下でなければなりません。

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
offset - 分割されたフラグメントが占めるドキュメントモデル内の位置 >= 0。これは返されるフラグメントの開始オフセットになる
pos - 分割されたビューが占める軸に沿った位置 >= 0。これはタブの計算などで便利な場合がある
len - 分割が必要な軸に沿った距離 >= 0
戻り値:
ビューが分割できる場合は、指定されたスパンを表すビューのフラグメント。ビューが分割動作をサポートしていない場合は、ビュー自体が返される
関連項目:
ParagraphView

createFragment

public View createFragment(int p0,
                           int p1)
要素の一部分を表すビューを作成します。書式設定の操作中に、ビューの各フラグメントを測定するために使います。ビューがフラグメント化をサポートしない場合 (これがデフォルト) は、ビュー自身が返されます。

パラメータ:
p0 - 開始オフセット >= 0。この値は要素の開始オフセット以上で、要素の終了オフセットより小さくなければならない
p1 - 終了オフセット > p0。この値は要素の終了オフセット以下で、要素の開始オフセットより大きくなければならない
戻り値:
ビューのフラグメント。ビューがフラグメントへの分割をサポートしない場合はビュー自体
関連項目:
LabelView

getBreakWeight

public int getBreakWeight(int axis,
                          float pos,
                          float len)
このビューで分割のウェイトがどのくらい適切かを示します。このメソッドは、フォーマットの過程で breakView を呼び出すもっとも適切なビューを判断するために使用できます。たとえば、余白を含むテキストを表すビューは、余白を含まないビューよりも適切です。ウェイトが高いほど、分割にはより適切です。BadBreakWeight 以下の値は、分割すべきではありません。ForcedBreakWeight 以上の値は、分割しなければなりません。

このメソッドは、長さがビューの長さより長い場合 (ビュー全体がフラグメントを表す) を除いて BadBreakWeight を返すデフォルトの動作を提供します。ビューが分割動作をサポートするように記述されていない限り、ビューを分割しようとするのは適切ではありません。分割をサポートするビューには LabelView などがあります。分割ウェイトを使用するビューには ParagraphView などがあります。

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
pos - 分割されたビューの開始の可能性のある位置 >= 0。これはタブ位置の計算に便利な場合がある
len - 分割が必要な pos からの相対的な長さ >= 0
戻り値:
ウェイト。ForcedBreakWeight と BadBreakWeight の間の値でなければならない
関連項目:
LabelView, ParagraphView, BadBreakWeight, GoodBreakWeight, ExcellentBreakWeight, ForcedBreakWeight

getResizeWeight

public int getResizeWeight(int axis)
指定された軸に沿ってビューのサイズを変更できるかどうかを指定します。値が 0 以下の場合はサイズ変更できません。

パラメータ:
axis - View.X_AXIS または View.Y_AXIS
戻り値:
ウェイト

setSize

public void setSize(float width,
                    float height)
ビューのサイズを設定します。レイアウトの必要がある場合は、指定した軸に沿ったビューのレイアウトを表示します。

パラメータ:
width - 幅 >= 0
height - 高さ >= 0

getContainer

public Container getContainer()
ビューを収容するコンテナを取り出します。これは、再描画のスケジューリング、収容側コンポーネントフォントの検索などに便利です。デフォルトの実装では、照会を親ビューに転送します。

戻り値:
コンテナ。ない場合は null

getViewFactory

public ViewFactory getViewFactory()
ビュー階層を供給している ViewFactory の実装を取り出します。ビューには通常、もっともファクトリを必要とするときにモデルから更新するための引数として渡されますが、このメソッドはそれ以外のときに実装を提供するために機能します。

戻り値:
ファクトリ。ない場合は null

getToolTipText

public String getToolTipText(float x,
                             float y,
                             Shape allocation)
指定された位置にあるツールヒントのテキストを返します。デフォルトの実装では、渡された位置によって特定される子ビューから値を返します。

導入されたバージョン:
1.4
関連項目:
JTextComponent.getToolTipText(java.awt.event.MouseEvent)

getViewIndex

public int getViewIndex(float x,
                        float y,
                        Shape allocation)
ビュー内の指定された位置を表す子ビューインデックスを返します。これは、すべての子について繰り返され、座標 (x, y) を含む境界を持つ最初の子を返します。

パラメータ:
x - x 座標
y - y 座標
allocation - ビューの現在の割り当て
戻り値:
指定された位置を表すビューのインデックス。位置を表すビューがない場合は、-1
導入されたバージョン:
1.4

updateChildren

protected boolean updateChildren(DocumentEvent.ElementChange ec,
                                 DocumentEvent e,
                                 ViewFactory f)
モデルが変更されたという通知を受け取ると、子ビューを更新します。このビューが扱う要素の変更記録があります。このメソッドの実装では、このビューが表す要素の子要素を、子ビューが直接扱うと想定します。ViewFactory は、ElementChange 内の追加として指定された、その ElementChange 内の特定のインデックスから始まる、各要素の子ビューを作成するために使用されます。指定された削除される要素を表す子ビューの数は削除されます。

パラメータ:
ec - このビューが扱う要素への変更情報。このメソッドが呼び出されない場合は null にはならない
e - 関連するドキュメントからの変更情報
f - 子ビューの構築に使用するファクトリ
戻り値:
このビューが扱う要素の子要素を、子ビューが表すかどうか。一部のビューでは扱う要素の一部を表す子を作成し、false が返される。この情報は、追加された要素の範囲のビューが転送されるかどうかを指定するのに使用される
導入されたバージョン:
1.3
関連項目:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

forwardUpdate

protected void forwardUpdate(DocumentEvent.ElementChange ec,
                             DocumentEvent e,
                             Shape a,
                             ViewFactory f)
指定された DocumentEvent をモデルの変更通知が必要な子ビューに転送します。このビューが扱う要素に変更があった場合、転送のときに考慮します (新しい子ビューが通知を受けないなど)。

パラメータ:
ec - このビューが扱う要素への変更。変更がない場合は null の可能性がある
e - 関連するドキュメントからの変更情報
a - ビューの現在の割り当て
f - ビューが子を持つ場合に再構築に使用するファクトリ
導入されたバージョン:
1.3
関連項目:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

forwardUpdateToView

protected void forwardUpdateToView(View v,
                                   DocumentEvent e,
                                   Shape a,
                                   ViewFactory f)
指定された子ビューに DocumentEvent を転送します。このメソッドは、イベントのタイプに左右される insertUpdateremoveUpdate、または changedUpdate への呼び出しを持つビューを送信するだけです。イベントが必要な子にイベントを転送するときに、forwardUpdate で呼び出されます。

パラメータ:
v - イベントを子ビューに転送する
e - 関連するドキュメントからの変更情報
a - ビューの現在の割り当て
f - ビューが子を持つ場合に再構築に使用するファクトリ
導入されたバージョン:
1.3
関連項目:
forwardUpdate(javax.swing.event.DocumentEvent.ElementChange, javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

updateLayout

protected void updateLayout(DocumentEvent.ElementChange ec,
                            DocumentEvent e,
                            Shape a)
モデルから変更の通知を受け取った場合に、レイアウトを更新します。ElementChange 記録が null でない場合、新しいレイアウトが再スケジュールされるように、preferenceChanged を呼び出すために実装されます。

パラメータ:
ec - このビューが扱う要素への変更。変更がない場合は null の可能性がある
e - 関連するドキュメントからの変更情報
a - ビューの現在の割り当て
導入されたバージョン:
1.3
関連項目:
insertUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), removeUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory), changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)

modelToView

@Deprecated
public Shape modelToView(int pos,
                                    Shape a)
                  throws BadLocationException
推奨されていません。 

ドキュメントモデルの座標空間からビューの座標空間へのマッピングを提供します。これは、バイアスのデフォルトを以前に暗示された Position.Bias.Forward にするために実装されます。

パラメータ:
pos - 変換対象の位置 >= 0
a - 割り当てられた描画領域
戻り値:
指定された位置のバウンディングボックス
例外:
BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を表さない場合
関連項目:
modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

@Deprecated
public int viewToModel(float x,
                                  float y,
                                  Shape a)
推奨されていません。 

ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。

パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
a - 割り当てられた描画領域
戻り値:
ビュー内の指定された点をもっともよく表すモデル内の位置 >= 0
関連項目:
viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

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 も参照してください。