JavaTM Platform
Standard Ed. 6

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

入れ子のクラスの概要
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, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, 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, getToolTipText, getView, getViewCount, getViewFactory, getViewIndex, 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
戻り値:
コピー
関連項目:
Cloneable

getGlyphPainter

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


setGlyphPainter

public void setGlyphPainter(GlyphView.GlyphPainter 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 を取得します。


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 以上。 通常、ビューは返されたスパン内に描画されるよう求められるが、 その保証はない。 親はビューのサイズの変更や分割を行う可能性がある
関連項目:
View.getPreferredSpan(int)

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 - 描画のために割り当てられた領域
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[] biasReturn)
ビューの座標空間からモデルの論理座標空間へのマッピングを提供します。

定義:
クラス View 内の viewToModel
パラメータ:
x - X 座標 >= 0
y - Y 座標 >= 0
a - 描画のために割り当てられた領域
biasReturn - この配列の 0 番目の要素として、Position.Bias.Forward または Position.Bias.Backward が 返される
戻り値:
指定されたビュー内の点をもっとも適切に表現するモデル内の位置。 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 以上の場合は、分割されます。

View.X_AXIS または View.Y_AXISX_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 Platform
Standard Ed. 6

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

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