JavaTM 2 Platform
Std. Ed. v1.3

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 などがあります。


内部クラスの概要
static class GlyphView.GlyphPainter
          グリフの描画を行うクラスです。
 
クラス javax.swing.text.View から継承したフィールド
BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS
 
インタフェース javax.swing.SwingConstants から継承したフィールド
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NORTH, NORTH_EAST, NORTH_WEST, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
コンストラクタの概要
GlyphView(Element elem)
          要素にラップされた新しいビューを作成します。
 
メソッドの概要
 View breakView(int axis, int p0, float pos, float len)
          指定された軸の上で、指定された長さでこのビューを分割します。
 void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
          このビューが担当する範囲で属性が変更されたことをドキュメントから通知します。
protected  void checkPainter()
          グリフペインタが存在するかどうかを調べます。
protected  Object clone()
          シャローコピーを作成します。
 View createFragment(int p0, int p1)
          要素の一部分を表すビューを作成します。
 float getAlignment(int axis)
          このビューの適切な整列を、軸に沿って決めます。
 Color getBackground()
          グリフの描画に使うバックグラウンドカラーを取り出します。
 int getBreakWeight(int axis, float pos, float len)
          このビュー内で分割する機会の重み付けをします。
 int getEndOffset()
          このビューが担当するモデルの一部を取り出します。
 Font getFont()
          グリフのベースとなるフォントを取り出します。
 Color getForeground()
          グリフの描画に使うフォアグラウンドカラーを取り出します。
 GlyphView.GlyphPainter getGlyphPainter()
          現在インストールされているグリフペインタを取り出します。
 int getNextVisualPositionFrom(int pos, Position.Bias b, Shape a, int direction, Position.Bias[] biasRet)
          キャレットが配置される可能性のある、視覚的に表された次のモデル位置を決定する手段を提供します。
 float getPartialSpan(int p0, int p1)
          ビューの一部のための、タブ拡張と同じ軸に沿ったスパンを指定します。
 float getPreferredSpan(int axis)
          このビューに適切なスパンを軸に沿って指定します。
 int getStartOffset()
          このビューが担当するモデルの一部を取り出します。
 float getTabbedSpan(float x, TabExpander e)
          指定されたタブ展開の実装を使うときに望ましいスパンを指定します。
 TabExpander getTabExpander()
          タブがこのビューに存在する場合に使う TabExpander を取り出します。
 Segment getText(int p0, int p1)
          指定された範囲を占めるテキストへの参照を取り出します。
 void insertUpdate(DocumentEvent e, Shape a, ViewFactory f)
          このビューが担当する範囲でドキュメントに何かが挿入されたことを通知します。
 boolean isStrikeThrough()
          グリフが取り消し線を持つかかどうかを決定します。
 boolean isSubscript()
          グリフを上付き文字として描画するかどうかを決定します
 boolean isSuperscript()
          グリフを下付き文字として描画するかどうかを決定します
 boolean isUnderline()
          グリフに下線をつけるかどうかを決定します。
 Shape modelToView(int pos, Shape a, Position.Bias b)
          ドキュメントモデルの座標空間からビューの座標空間へのマッピングを提供します。
 void paint(Graphics g, Shape a)
          テキスト書式の行の一部を描画します。
 void removeUpdate(DocumentEvent e, Shape a, ViewFactory f)
          このビューが担当する範囲でドキュメントから何かが削除されたことを通知します。
 void setGlyphPainter(GlyphView.GlyphPainter p)
          グリフの描画に使うペインタを設定します。
 int viewToModel(float x, float y, Shape a, Position.Bias[] biasReturn)
          ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
 
クラス javax.swing.text.View から継承したメソッド
append, forwardUpdate, forwardUpdateToView, getAttributes, getChildAllocation, getContainer, getDocument, getElement, getGraphics, getMaximumSpan, getMinimumSpan, getParent, getResizeWeight, getView, getViewCount, getViewFactory, getViewIndex, insert, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, replace, setParent, setSize, updateChildren, updateLayout, viewToModel
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

GlyphView

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

clone

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

getGlyphPainter

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

setGlyphPainter

public void setGlyphPainter(GlyphView.GlyphPainter p)
グリフの描画に使うペインタを設定します。

getText

public Segment getText(int p0,
                       int p1)
指定された範囲を占めるテキストへの参照を取り出します。通常は GlyphPainter がグリフの描画対象文字を判定するのに使います。

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 を取り出します。

checkPainter

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

getTabbedSpan

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

getPartialSpan

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

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

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

getStartOffset

public int getStartOffset()
このビューが担当するモデルの一部を取り出します。
オーバーライド:
クラス View 内の getStartOffset
戻り値:
モデルへの開始オフセット
関連項目:
View.getStartOffset()

getEndOffset

public int getEndOffset()
このビューが担当するモデルの一部を取り出します。
オーバーライド:
クラス View 内の getEndOffset
戻り値:
モデルへの終了オフセット
関連項目:
View.getEndOffset()

paint

public void paint(Graphics g,
                  Shape a)
テキスト書式の行の一部を描画します。
オーバーライド:
クラス View 内の paint
パラメータ:
g - 使用する描画表面
a - 描画のために割り当てられた領域

getPreferredSpan

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

getAlignment

public float getAlignment(int axis)
このビューの適切な整列を、軸に沿って決めます。ラベルの整列は、y 軸の場合はフォントベースラインに沿って、x 軸の場合はスーパークラスの整列に沿って決めます。
オーバーライド:
クラス View 内の getAlignment
パラメータ:
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
ドキュメントモデルの座標空間からビューの座標空間へのマッピングを提供します。
オーバーライド:
クラス View 内の modelToView
パラメータ:
pos - 変換対象の位置 >= 0
a - 描画のために割り当てられた領域
戻り値:
指定された位置のバウンディングボックス
例外:
BadLocationException - 指定された位置が、関連するドキュメント内の有効な位置を表さない場合
関連項目:
View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)

viewToModel

public int viewToModel(float x,
                       float y,
                       Shape a,
                       Position.Bias[] biasReturn)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。
オーバーライド:
クラス View 内の viewToModel
パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
a - 描画のために割り当てられた領域
戻り値:
ビューの指定された点を最も適切に表す、モデル内の位置 >= 0
関連項目:
View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])

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 文字の間で分割が行われます。
オーバーライド:
クラス View 内の getBreakWeight
パラメータ:
axis - View.X_AXIS または View.Y_AXIS
pos - 分割されたビューの開始の可能性のある位置 >= 0。これはタブ位置の計算に便利な場合がある
len - 分割が望まれる pos からの相対的な長さ >= 0 を指定する
戻り値:
ウェイト。View.ForcedBreakWeight と View.BadBreakWeight の間の値であること
関連項目:
LabelView, ParagraphView, View.BadBreakWeight, View.GoodBreakWeight, View.ExcellentBreakWeight, View.ForcedBreakWeight

breakView

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

createFragment

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

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

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

getNextVisualPositionFrom

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

insertUpdate

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

removeUpdate

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

changedUpdate

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.