モジュール java.desktop
パッケージ 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クラスは、テキスト・パッケージの非常に重要な部分です。 名前が示すとおり、テキスト・モデルのビュー、またはテキスト・モデルの一部を表します。 名前が示すように、テキスト・モデルのビュー、あるいはテキスト・モデルの一部分を表します。 このクラスはテキスト・コンポーネントの外観を扱います。

デフォルトでは、ビューは軽量です。 ビューには、ビューが状態を保持しないで多くのものを取得することができる親ビューへの参照と、モデル(Element)の一部分への参照が含まれています。 ビューは、典型的なだけで便利なマッピングである、モデルの要素を正確に表す必要はありません。 バージョン1.1および1.2の両方で機能するAPIは、移行によって生じる問題を最小化するのに便利です。 ビューがバラバラにされた場合の通常のフォーマットの結果です。 モデルが変更され、ビューがそのモデルを反映するように変更されなければならないとき、要素との実質的な関係の利便性を、ビューを生成するファクトリの構築によって簡単にしたり、ビュー各部分の追跡を継続することで簡単にします。 つまり、単純なビューはElementを直接表しますが、複雑なビューは違います。

ビューには次の機能があります。

レイアウトへの関与

組み合わされた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の描画に対して次のセマンティックスが用意されています。

  • ビューは、ペイント時に親からの割り当てを取得する。割当て領域が処理対象とされている領域と異なる場合、レイアウトの再実行の準備が必要。
  • 座標体系は、getContainerメソッドで返されたComponentなどの収容側Componentと同じ。 すなわち、親が明示的に座標体系を変更していない限り、子ビューは親ビューと同じ座標体系に存在する。 自分を再描画するようにスケジュールするために、ビューは収容側Componentの再描画を呼び出すことができる。
  • デフォルトは子をクリップしないことに設定。 ビューがクリッピングを本当に必要とする場合に限り、ビューをクリップ可能にするとさらに効果的。
  • 指定されたGraphicsオブジェクトはどんな方法でも初期化されない。 ビューが必要な設定をしなければならない。
  • 本来Viewは透明。 ビューがその割当て全体を描画する場合もあるが、通常は描画しない。 View実装のツリーを下位へたどってレンダリングを実行する。 Viewはその子のレンダリングを扱う。 この動作はスレッドに対する安全性に依存している。 ビューの実装にスレッドに対する安全性を考慮する必要がない場合は、同時に使用できるほかのビューの実装が、スレッドに対する安全性を保証するツリー・トラバーサルに依存する。
  • モデルに関連するビューの順序は実装によって異なる。 子ビューは通常、モデル内で発生する順序と同じ順序で配置されるが、視覚的にまったく異なる順序で配置されることもある。 子が重複する場合、Viewの実装には重複した子に関連したZ-Orderが用意されている場合がある。

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

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

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

変換しようとする前にレイアウトを有効にする必要があります。 この変換は有効ではないため、変更が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 pos, Shape a)
    非推奨。 
    abstract Shape modelToView​(int pos, Shape a, Position.Bias b)
    指定した文字について、ドキュメント・モデル座標空間からビュー座標空間へのマッピングを提供します。
    Shape modelToView​(int p0, Position.Bias b0, int p1, Position.Bias b1, Shape a)
    指定した範囲について、ドキュメント・モデル座標空間からビュー座標空間へのマッピングを提供します。
    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で宣言されたメソッド

    cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait
  • フィールド詳細

  • コンストラクタの詳細

    • 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
      戻り値:
      ビューの描画先のスパン。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある
    • 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 - 描画するために割り当てられた領域
    • 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の簡易呼出しです。
      パラメータ:
      i - 位置
      導入されたバージョン:
      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
      b - バイアス
      戻り値:
      指定された位置を表すビューのインデックス。その位置を表すビューがない場合は -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
      キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 ビューによっては、可視ではないか、モデル内と同じ順序でないか、またはモデル内の一部の位置へのアクセスを許可しない場合があります。 このメソッドを使用すると、0以上の範囲内で変換する位置を指定できます。 値が-1の場合は、位置が自動的に計算されます。 値が-1よりも小さい場合は、BadLocationExceptionがスローされます。
      パラメータ:
      pos - 変換対象の位置
      b - バイアス
      a - 割り当てられた描画領域
      direction - 現在位置からの方向。キーボードに通常見られる矢印キーと見なすことができる。 これは、次の値のいずれかになります。
      • SwingConstants.WEST
      • SwingConstants.EAST
      • SwingConstants.NORTH
      • SwingConstants.SOUTH
      biasRet - 戻りバイアス
      戻り値:
      次の可視の位置をもっともよく表す、モデル内の位置
      例外:
      BadLocationException - 指定された位置がドキュメント内の有効な位置でない場合
      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 - 割り当てられた描画領域
      biasReturn - 戻りバイアス
      戻り値:
      指定されたビュー内の点をもっとも適切に表現するモデル内の位置。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)
      指定された位置にあるツールヒントのテキストを返します。 デフォルトの実装では、渡された位置によって特定される子ビューから値を返します。
      パラメータ:
      x - x座標
      y - y座標
      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

      @Deprecatedpublic 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

      @Deprecatedpublic 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[])