モジュール java.desktop
パッケージ javax.swing.text

クラスGlyphView

java.lang.Object
javax.swing.text.View
javax.swing.text.GlyphView
すべての実装されたインタフェース:
Cloneable, SwingConstants, TabableView
直系の既知のサブクラス:
LabelView

public class GlyphView extends View implements TabableView, Cloneable
テキスト・モデルの要素上にマッピングされたビューを表す、テキストの書式付きチャンクです。 このビューは通常、何らかの方法で文字レベルの属性を使ってテキスト・グリフを表示します。 GlyphPainterクラスの実装は、実際の描画およびモデルとビューの変換を行うのに使われます。 このクラスは、モデルに関連したレイアウトおよび管理から描画を分離します。

このビューは、フォーマットを整えるために分割をサポートしています。 分割によってできたフラグメントは、その要素の直接的な責任を持つビューを共有する(すなわち、それらはネストされたクラスであり、それ自体の状態は最小限しか持たない)ため、各フラグメントはそのリソースを共有できます。

このビューは、タブが埋め込まれたテキストを表現することもあるので、TabableViewインタフェースを実装します。 タブが展開されるのは、タブの展開を行うコンテナにこのビューが埋め込まれている場合だけです。 タブ展開を行うコンテナとしては、ParagraphViewなどがあります。

導入されたバージョン:
1.3
  • コンストラクタの詳細

    • GlyphView

      public GlyphView(Element elem)
      要素にラップされた新しいビューを作成します。
      パラメータ:
      elem - 要素
  • メソッドの詳細

    • clone

      protected final Object clone()
      シャロー・コピーを作成します。 createFragmentメソッドおよびbreakViewメソッドによって使用されます。
      オーバーライド:
      clone、クラスObject
      戻り値:
      コピー
      関連項目:
    • getGlyphPainter

      public GlyphView.GlyphPainter getGlyphPainter()
      現在インストールされているグリフ・ペインタを取得します。 ペインタがまだインストールされていない場合、およびデフォルトがまだ必要でない場合は、nullが返されます。
      戻り値:
      現在インストールされているグリフペインタ
    • setGlyphPainter

      public void setGlyphPainter(GlyphView.GlyphPainter p)
      グリフの描画に使用するペインタを設定します。
      パラメータ:
      p - グリフの描画に使用するペインタ
    • getText

      public Segment getText(int p0, int p1)
      指定された範囲を占めるテキストへの参照を取得します。 通常はGlyphPainterがグリフの描画対象文字を判定するのに使います。
      パラメータ:
      p0 - ドキュメントの開始オフセット>= 0
      p1 - ドキュメントの終了オフセット>= p0
      戻り値:
      テキストが格納されているSegment
    • getBackground

      public Color getBackground()
      グリフの描画に使用するバックグラウンド・カラーを取得します。 バックグラウンド・カラーがない場合はnullを返すようにします。 関連するドキュメントが書式付きドキュメントの場合はStyledDocument.getBackgroundを呼び出すのに実装され、そうでない場合はnullを返します。
      戻り値:
      グリフのレンダリングに使用するバックグラウンド色
    • getForeground

      public Color getForeground()
      グリフの描画に使用するフォアグラウンド・カラーを取得します。 フォアグラウンド・カラーがない場合はnullを返すようにします。 関連するドキュメントがStyledDocumentの場合はStyledDocument.getBackgroundを呼び出すのに実装されます。 関連するドキュメントがStyledDocumentでない場合は、関連するコンポーネントのフォアグラウンド・カラーが使用されます。 関連するドキュメントがない場合はnullが返されます。
      戻り値:
      グリフを描画するために使用する前景色
    • getFont

      public Font getFont()
      グリフのベースとなるフォントを取得します。 関連するドキュメントがStyledDocumentの場合はStyledDocument.getFontを呼び出すのに実装されます。 関連するドキュメントがStyledDocumentでない場合は、関連するコンポーネントのフォントが使用されます。 関連するドキュメントがない場合はnullが返されます。
      戻り値:
      グリフを基にするフォント
    • isUnderline

      public boolean isUnderline()
      グリフに下線を付けるかどうかを決定します。 trueの場合、ベースラインに下線が引かれます。
      戻り値:
      グリフに下線を引く必要がある場合
    • isStrikeThrough

      public boolean isStrikeThrough()
      グリフが取消し線を持つかどうかを決定します。 trueの場合、グリフの中央に線が引かれます。
      戻り値:
      グリフに取り消し線がある場合
    • isSubscript

      public boolean isSubscript()
      グリフを上付き文字として描画するかどうかを決定します。
      戻り値:
      グリフを上付き文字としてレンダリングする必要がある場合
    • isSuperscript

      public boolean isSuperscript()
      グリフを下付き文字として描画するかどうかを決定します。
      戻り値:
      グリフを添え字としてレンダリングする必要がある場合
    • getTabExpander

      public TabExpander getTabExpander()
      タブがこのビューに存在する場合に使うTabExpanderを取得します。
      戻り値:
      タブがこのビューに存在する場合に使用するTabExpander
    • checkPainter

      protected void checkPainter()
      グリフ・ペインタが存在するかどうかを調べます。 ペインタが存在しない場合、デフォルトのグリフ・ペインタがインストールされます。
    • getTabbedSpan

      public float getTabbedSpan(float x, TabExpander e)
      指定されたタブ展開の実装を使うときに望ましいスパンを指定します。
      定義:
      getTabbedSpan、インタフェースTabableView
      パラメータ:
      x - タブ展開のためにビューが配置される位置>= 0。
      e - タブを検出したときにタブを展開する方法。
      戻り値:
      適切なスパン>= 0
      関連項目:
    • getPartialSpan

      public float getPartialSpan(int p0, int p1)
      ビューの一部のため、タブ拡張と同じ軸に沿ったスパンを指定します。 このメソッドは、タブ拡張がタブストップと関連する余白を持たないテキストの部分の位置揃えを伴う場合にTabExpanderによって使用されます。 このため、指定された範囲にタブが含まれていないと仮定します。

      このメソッドは、getTabbedSpanまたはgetPreferredSizeのサービス中に呼び出すことができます。 サイズを測定するために、それ自身のテキスト・バッファを準備する必要があります。

      定義:
      getPartialSpan、インタフェースTabableView
      パラメータ:
      p0 - ドキュメントの開始オフセット>= 0
      p1 - ドキュメントの終了オフセット>= p0
      戻り値:
      スパン>= 0
    • getStartOffset

      public int getStartOffset()
      このビューが扱うモデルの一部を取得します。
      オーバーライド:
      getStartOffset、クラスView
      戻り値:
      モデルへの開始オフセット
      関連項目:
    • getEndOffset

      public int getEndOffset()
      このビューが扱うモデルの一部を取得します。
      オーバーライド:
      getEndOffset、クラスView
      戻り値:
      モデルへの終了オフセット
      関連項目:
    • paint

      public void paint(Graphics g, Shape a)
      一連のテキスト・スタイルの一部をレンダリングします。
      定義:
      paint、クラスView
      パラメータ:
      g - 使用する描画表面
      a - 描画するために割り当てられた領域
    • getMinimumSpan

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

      この実装は、ビュー内で分割できないもっとも長い領域をView.X_AXISの最小スパンとして返します。

      オーバーライド:
      getMinimumSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューを描画できる最小スパン
      例外:
      IllegalArgumentException - axisパラメータが無効の場合
      関連項目:
    • getPreferredSpan

      public float getPreferredSpan(int axis)
      このビューに適切なスパンを軸に沿って指定します。
      定義:
      getPreferredSpan、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      ビューの描画先のスパン>= 0。 通常、ビューは返されたスパン内に描画されるよう求められるが、その保証はない。 親はビューのサイズの変更や分割を行う可能性がある。
    • getAlignment

      public float getAlignment(int axis)
      軸に沿ったこのビューの望ましいレイアウトを決定します。 ラベルの整列は、y軸の場合はフォント・ベースラインに沿って、x軸の場合はスーパー・クラスの整列に沿って決めます。
      オーバーライド:
      getAlignment、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      戻り値:
      望ましい配置。 この値の範囲は0.0から1.0で、0は起点への配置、1.0は起点から最大に離れた配置を表す。 0.5は、ビューの中央への配置になります。
    • modelToView

      public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
      ドキュメント・モデルの座標空間からビューの座標空間へのマッピングを提供します。
      定義:
      modelToView、クラスView
      パラメータ:
      pos - 変換対象の位置>= 0
      a - 描画するために割り当てられた領域
      b - Position.Bias.ForwardまたはPosition.Bias.Backward
      戻り値:
      指定された位置のバウンディング・ボックス
      例外:
      BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を示さない場合
      関連項目:
    • viewToModel

      public int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
      ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
      定義:
      viewToModel、クラスView
      パラメータ:
      x - X座標>= 0
      y - Y座標>= 0
      a - 描画するために割り当てられた領域
      biasReturn - Position.Bias.ForwardまたはPosition.Bias.Backwardが、この配列の0番目の要素として返される
      戻り値:
      指定されたビュー内の点をもっとも適切に表現するモデル内の位置>= 0
      関連項目:
    • getBreakWeight

      public int getBreakWeight(int axis, float pos, float len)
      このビューで分割のウエイトがどのくらい適切かを示します。 このメソッドは、フォーマットの過程でbreakViewを呼び出すもっとも適切なビューを判断するために使用できます。 ウエイトが高いほど、分割にはより適切です。 値がView.BadBreakWeight以下の場合は、分割対象とはなりません。 値がView.ForcedBreakWeight以上の場合は、分割されます。

      これは、Y_AXISのスーパークラスへの転送のために実装されます。 X_AXISについては、次の値が返される可能性があります。

      View.ExcellentBreakWeight
      分割したい位置の直前に空白がある場合。
      View.BadBreakWeight
      分割したい位置が、結果として開始オフセットの分割位置になる場合。
      View.GoodBreakWeight
      以上2つの条件が該当しない場合。
      通常は、これによって、空白文字があればその場所で、そうでない場合は2文字の間で分割が行われます。

      オーバーライド:
      getBreakWeight、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      pos - 分割されたビューの開始の可能性のある位置。0以上。 これはタブ位置の計算に便利な場合がある。
      len - 分割が必要なposからの相対的な長さを指定する。0以上。
      戻り値:
      ウエイト。View.ForcedBreakWeightとView.BadBreakWeightの間の値。
      関連項目:
    • breakView

      public View breakView(int axis, int p0, float pos, float len)
      指定された軸および指定された長さでこのビューを分割します。 このメソッドは、空白文字の位置で分割するために実装されており、末尾に空白文字を持つフラグメントを返します。 空白文字の位置が見つからない場合は、もっとも近い文字を使います。
      オーバーライド:
      breakView、クラスView
      パラメータ:
      axis - View.X_AXISまたはView.Y_AXIS
      p0 - フラグメントの表示を開始するモデル内の位置>= 0。
      pos - 分割されたビューが占める軸に沿った位置>= 0。 これはタブの計算などで便利な場合がある。
      len - 分割が必要な軸に沿った距離>= 0。
      戻り値:
      ビューが分割できる場合は、指定されたスパンを表すビューのフラグメント。 ビューが分割動作をサポートしていない場合は、ビュー自体が返される。
      関連項目:
    • createFragment

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

      このビューは、フラグメント化をサポートしています。 この実装により、このビューの状態を共有する、ビューの一部分だけを表す入れ子になっているクラスを返すことができます。

      オーバーライド:
      createFragment、クラスView
      パラメータ:
      p0 - 開始オフセット。0以上。 要素の開始オフセットに等しいか、それより大きい値で、要素の終了オフセットより小さい値にする。
      p1 - 終了オフセット。p0より大きい。 要素の開始オフセットより大きく、要素の終了オフセットに等しいか、それより小さい値にする。
      戻り値:
      ビューのフラグメント。ビューがフラグメントへの分割をサポートしない場合はビュー自体
      関連項目:
    • getNextVisualPositionFrom

      public int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet) throws BadLocationException
      キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。 ビューによっては、可視ではないか、モデル内と同じ順序でないか、またはモデル内の一部の位置へのアクセスを許可しない場合があります。 このメソッドを使用すると、0以上の範囲内で変換する位置を指定できます。 値が-1の場合は、位置が自動的に計算されます。 値が-1よりも小さい場合は、BadLocationExceptionがスローされます。
      オーバーライド:
      getNextVisualPositionFrom、クラスView
      パラメータ:
      pos - 変換対象の位置
      a - 描画するために割り当てられた領域
      direction - 現在位置からの方向。キーボードに通常見られる矢印キーと見なすことができる。 SwingConstants.WEST、SwingConstants.EAST、SwingConstants.NORTH、またはSwingConstants.SOUTHになる。
      b - バイアス
      biasRet - 戻りバイアス
      戻り値:
      次の可視の位置をもっともよく表すモデル内の位置。
      例外:
      BadLocationException - 指定された位置がドキュメント内の有効な位置でない場合
      IllegalArgumentException - 方向が無効な場合
    • insertUpdate

      public void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
      このビューが扱う位置でドキュメントに何かが挿入されたことを通知します。 このメソッドは、グリフが描画される軸に沿ってpreferenceChangedを呼び出すために実装されます。
      オーバーライド:
      insertUpdate、クラスView
      パラメータ:
      e - 関連するドキュメントからの変更情報
      a - ビューの現在の割当て
      f - ビューが子を持つ場合に再構築に使用するファクトリ
      関連項目:
    • removeUpdate

      public void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
      このビューが扱うドキュメント内の位置から何かが削除されたということを通知します。 このメソッドは、グリフが描画される軸に沿ってpreferenceChangedを呼び出すために実装されます。
      オーバーライド:
      removeUpdate、クラスView
      パラメータ:
      e - 関連するドキュメントからの変更情報
      a - ビューの現在の割当て
      f - ビューが子を持つ場合に再構築に使用するファクトリ
      関連項目:
    • changedUpdate

      public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
      このビューが扱う位置で属性が変更されたことをドキュメントから通知します。 このメソッドは、水平軸および垂直軸の両方に沿ってpreferenceChangedを呼び出すために実装されます。
      オーバーライド:
      changedUpdate、クラスView
      パラメータ:
      e - 関連するドキュメントからの変更情報
      a - ビューの現在の割当て
      f - ビューが子を持つ場合に再構築に使用するファクトリ
      関連項目: