クラスDefaultCaret

すべての実装されたインタフェース:
FocusListener, MouseListener, MouseMotionListener, Shape, Serializable, Cloneable, EventListener, Caret
直系の既知のサブクラス:
BasicTextUI.BasicCaret

public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener
Caretのデフォルトの実装です。 キャレットは、関連するJTextComponentのCaretColorプロパティで指定された色の垂直線として描画されます。 また、BlinkRateプロパティで指定した速さで点滅させることができます。

この実装は、非同期通知のソースが2つあることを想定しています。 タイマー・スレッドは非同期にトリガーされ、これにより、キャレットは最新のバウンディング・ボックスにペイントし直されます。 また、キャレットはドキュメントが更新されるたびに変更を追跡します。 通常これは、マウス・イベントまたはキーボード・イベントによるイベント・ディスパッチ・スレッドにおいて発生します。 キャレットの動作は、ドキュメントの同期的な更新でも非同期的な更新でも、UpdatePolicyプロパティによって制御されます。 新しいキャレット位置の再ペイントは、必ずイベント・スレッド上で発生します。これは、modelToViewの呼出しがイベント・スレッド上でのみ安全だからです。

キャレットは、インストール先のテキスト・コンポーネントでマウスおよびフォーカス・リスナーとして振る舞い、キャレットのセマンティックスをそうしたイベントに基づいて定義します。 セマンティックスを変更するには、リスナーのメソッドを実装し直します。 デフォルトでは、マウスの第1ボタンを使ってフォーカスとキャレット位置を設定します。 第1ボタンを使ってマウス・ポインタをドラッグすると、モデル内の隣接する選択部分を広げることができます。 関連するテキスト・コンポーネントが編集可能な場合は、キャレットはフォーカスを得たときに可視になり、フォーカスを失ったときに不可視になります。

関連するテキストへのHighlighter境界は、デフォルトでは選択部分を描画するために使用されます。 選択部分の表示は、ハイライトに使用するペインタを提供することでカスタマイズできます。 デフォルトでは、関連するテキスト・コンポーネントのSelectionColorプロパティで指定されたソリッド色で描画されます。 これは、getSelectionPainterメソッドを実装し直すことで簡単に変更できます。

キャレットの外観は、paintメソッドを実装し直すことでカスタマイズできます。 paintメソッドを変更する場合には、damageメソッドも実装し直して、キャレットの描画に使われる領域を描画し直してください。 キャレットは、Rectangleクラスを拡張しているため、キャレットが最後に描画されたバウンディング・ボックスを保持しています。 これによって、キャレットが移動したときに、モデルの更新とビューの修復の間で動作が不安定なmodelToViewメソッドを呼び出すことなく、スレッドに対して安全な方法で描画し直すことができます(modelToViewメソッドでは、DocumentListenerへの配信の順序が保証されない)。

キャレット位置が変更されるとき、マジック・キャレットの位置はnullに設定されています。 タイマーを使って、キャレット変更後の新しい位置を指定します。 タイマーがトリガーすると、マジック・キャレットの位置がまだnullの場合、現在のキャレット位置にリセットされます。 キャレット位置を変更し、マジック・キャレットの位置をそのままにしておくアクションの場合はすべて、マジック・キャレットの位置を覚え、カーソルを変更してから、マジック・キャレットの位置をその元の位置に設定します。 このメソッドには、マジック・キャレットの位置を持続させる(オープンまたはダウンさせるなど)アクションだけがそれを知っていればよいという利点があります。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

関連項目:
  • ネストされたクラスのサマリー

    クラスRectangle2Dで宣言されたネストされたクラス/インタフェース

    Rectangle2D.Double, Rectangle2D.Float
    修飾子と型
    クラス
    説明
    static class 
    Doubleクラスは、double座標で指定される矩形を定義します。
    static class 
    Floatクラスは、float座標で指定される矩形を定義します。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    static final int
    ドキュメントの更新がイベント・ディスパッチ・スレッドで行われるかどうかに関係なく、ドキュメントの変更に従ってキャレット位置が必ず更新されることを示します。
    protected ChangeEvent
    モデルの変更を示すイベントです。
    イベント・リスナーのリストです。
    static final int
    削除のせいでドキュメントの長さが現在のキャレット位置よりも短くなる場合を除き、ドキュメントの更新に関係なく、ドキュメント内のキャレットの絶対位置が変わらないことを示します。
    static final int
    イベント・ディスパッチ・スレッドでドキュメントの変更が行われる場合にのみキャレット位置が更新されることを示します。

    クラス Rectangleで宣言されたフィールド

    height, width, x, y
    修飾子と型
    フィールド
    説明
    int
    Rectangleの高さ。
    int
    Rectangleの幅。
    int
    Rectangleの左上隅のX座標。
    int
    Rectangleの左上隅のY座標。

    クラスで宣言されたフィールド Rectangle2D

    OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP
    修飾子と型
    フィールド
    説明
    static final int
    点がこのRectangle2Dの下にあることを示すビット・マスクです。
    static final int
    点がこのRectangle2Dの左にあることを示すビット・マスクです。
    static final int
    点がこのRectangle2Dの右にあることを示すビット・マスクです。
    static final int
    点がこのRectangle2Dの上にあることを示すビット・マスクです。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    デフォルトのキャレットを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    キャレットの移動を常に追跡するために、リスナーを追加します。
    protected void
    必要に応じて、関連するビューをスクロールして、キャレットを表示します。
    protected void
    キャレットを囲む領域を壊して、新しい位置に再ペイントされるようにします。
    void
    UIがJTextComponentのインタフェースから削除されたときに呼び出されます。
    boolean
    このオブジェクトを指定されたオブジェクトと比較します。
    protected void
    このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。
    void
    キャレットを含むコンポーネントがフォーカスを取得したときに呼び出されます。
    void
    キャレットを含むコンポーネントがフォーカスを失ったときに呼び出されます。
    int
    キャレットの点滅間隔を取得します。
    このキャレットに登録された、すべての変更リスナーからなる配列を返します。
    protected final JTextComponent
    このキャレットがバインドされているテキスト・エディタ・コンポーネントを取得します。
    int
    キャレットの現在の位置を取り出します。
    キャレットの位置のバイアスを返します。
    <T extends EventListener>
    T[]
    getListeners(Class<T> listenerType)
    このキャレットにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。
    保存されているキャレットの位置を取得します。
    int
    マークの現在の位置を取り出します。
    マークのバイアスを返します。
    ハイライタのペインタを取得します。
    int
    ドキュメントの更新に対するキャレット移動ポリシーを取得します。
    void
    JTextComponentのインタフェースにUIがインストールされるときに呼び出されます。
    boolean
    キャレットが現在アクティブであるかどうかを判定します。
    boolean
    現在の選択範囲が可視であるかどうかを判定します。
    boolean
    キャレットが現在可視状態であるかどうかを示します。
    void
    マウスがクリックされたときに呼び出されます。
    void
    マウス・ポインタの現在位置に従って、キャレットを移動します。
    void
    マウスが領域に入ったときに呼び出されます。
    void
    マウスが領域から出たときに呼び出されます。
    void
    マウスが移動したときに呼び出されます。
    void
    ボタン1がクリックされた場合に、関連するテキスト・コンポーネントへのフォーカスを要求し、キャレットの位置を設定するために実装されます。
    void
    マウス・ボタンを離したときに呼び出されます。
    protected void
    viewToModel()を使用して、マウス・イベントの座標からキャレットの移動を試みます。
    void
    moveDot(int dot)
    転送バイアスを使って、キャレット位置を指定された位置に移動します。
    void
    moveDot(int dot, Position.Bias dotBias)
    指定されたバイアスを使って、キャレット位置を指定された位置に移動します。
    void
    キャレットを垂直線としてレンダリングします。
    protected void
    viewToModel()を使用して、マウス・イベントの座標からキャレットの位置の設定を試みます。
    void
    キャレットの移動を追跡しているリスナーを削除します。
    protected final void
    キャレットを描画します。
    void
    setBlinkRate(int rate)
    キャレットの点滅間隔を設定します。
    void
    setDot(int dot)
    転送バイアスを使って、キャレット位置を設定し、指定された位置をマークします。
    void
    setDot(int dot, Position.Bias dotBias)
    指定されたバイアスを使って、キャレット位置を設定し、指定された位置をマークします。
    void
    キャレットの現在の位置を保存します。
    void
    setSelectionVisible(boolean vis)
    選択範囲の可視性を変更します。
    void
    setUpdatePolicy(int policy)
    ドキュメントの更新に対するキャレット移動ポリシーを設定します。
    void
    setVisible(boolean e)
    キャレットの可視性を設定し、キャレットを再ペイントします。

    クラス Rectangleで宣言されたメソッド

    add, add, add, contains, contains, contains, contains, createIntersection, createUnion, getBounds, getBounds2D, getHeight, getLocation, getSize, getWidth, getX, getY, grow, inside, intersection, intersects, isEmpty, move, outcode, reshape, resize, setBounds, setBounds, setLocation, setLocation, setRect, setSize, setSize, toString, translate, union
    修飾子と型
    メソッド
    説明
    void
    add(int newx, int newy)
    整数の引数newx,newyによって指定された点をこのRectangleの境界に追加します。
    void
    add(Point pt)
    指定されたPointをこのRectangleの境界に追加します。
    void
    RectangleをこのRectangleに追加します。
    boolean
    contains(int x, int y)
    このRectangleに、指定された位置(x,y)にある点が含まれるかどうかをチェックします。
    boolean
    contains(int X, int Y, int W, int H)
    このRectangleに、指定された寸法(W,H)を持つ指定された位置(X,Y)にあるRectangleが完全に含まれるかどうかをチェックします。
    boolean
    このRectangleに、指定されたPointが含まれるかどうかをチェックします。
    boolean
    このRectangleに、指定されたRectangleが完全に含まれるかどうかをチェックします。
    このRectangle2Dと指定されたRectangle2Dの共通部分を表す新しいRectangle2Dオブジェクトを返します。
    このRectangle2Dと指定されたRectangle2Dの和集合を表す新しいRectangle2Dオブジェクトを返します。
    このRectangleの境界のRectangleを取得します。
    高精度で、かつgetBoundsメソッドより正確なShapeのバウンディング・ボックスを返します。
    double
    境界のRectangleの高さをdouble精度で返します。
    このRectangleの位置を返します。
    返されたDimensionで表された、このRectangleのサイズを取得します。
    double
    境界のRectangleの幅をdouble精度で返します。
    double
    境界のRectangleのX座標をdouble精度で返します。
    double
    境界のRectangleのY座標をdouble精度で返します。
    void
    grow(int h, int v)
    Rectangleのサイズを水平方向と垂直方向の両方に変更します。
    boolean
    inside(int X, int Y)
    非推奨。
    JDKバージョン1.1で、contains(int, int)に置き換えられています。
    このRectangleと指定されたRectangleの共通部分を計算します。
    boolean
    このRectangleと指定されたRectangleが交差しているかどうかを判定します。
    boolean
    RectangularShapeが空であるかどうかを判定します。
    void
    move(int x, int y)
    非推奨。
    JDKバージョン1.1で、setLocation(int, int)に置き換えられています。
    int
    outcode(double x, double y)
    このRectangle2Dを基準に、指定された座標がある場所を判定します。
    void
    reshape(int x, int y, int width, int height)
    非推奨。
    JDKバージョン1.1で、setBounds(int, int, int, int)に置き換えられています。
    void
    resize(int width, int height)
    非推奨。
    JDKバージョン1.1で、setSize(int, int)に置き換えられています。
    void
    setBounds(int x, int y, int width, int height)
    このRectangleの境界のRectangleを指定されたxywidth、およびheightに設定します。
    void
    このRectangleの境界のRectangleを指定されたRectangleに一致するように設定します。
    void
    setLocation(int x, int y)
    このRectangleを指定された位置に移動します。
    void
    このRectangleを指定された位置に移動します。
    void
    setRect(double x, double y, double width, double height)
    このRectangleの境界を、指定されたxywidth、およびheightを取り囲む整数境界に設定します。
    void
    setSize(int width, int height)
    このRectangleのサイズを指定された幅と高さに設定します。
    void
    このRectangleのサイズを指定されたDimensionに一致するように設定します。
    このRectangleとその値を表すStringを返します。
    void
    translate(int dx, int dy)
    このRectangleをX座標軸に沿って右方向に、Y座標軸に沿って下方向に、示された距離だけ平行移動します。
    このRectangleと指定されたRectangleの和集合を計算します。

    クラスで宣言されたメソッド Rectangle2D

    add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union
    修飾子と型
    メソッド
    説明
    void
    add(double newx, double newy)
    倍精度のnewx引数およびnewy引数で指定された点をこのRectangle2Dに追加します。
    void
    Point2DオブジェクトptをこのRectangle2Dに追加します。
    void
    Rectangle2DオブジェクトをこのRectangle2Dに追加します。
    boolean
    contains(double x, double y)
    「内部性の定義」で説明されているように、指定された座標がShapeの境界内にあるかどうかをテストします。
    boolean
    contains(double x, double y, double w, double h)
    Shapeの内部に、指定された矩形領域が完全に含まれるかどうかをテストします。
    このRectangle2Dの境界を定義する反復オブジェクトを返します。
    getPathIterator(AffineTransform at, double flatness)
    平坦化されたRectangle2Dの境界を定義する反復オブジェクトを返します。
    int
    このRectangle2Dのハッシュ・コードを返します。
    static void
    指定された元のRectangle2Dオブジェクトのペアの共通部分をとり、その結果を指定された転送先Rectangle2Dオブジェクトに格納します。
    boolean
    intersects(double x, double y, double w, double h)
    Shapeの内部が指定された矩形領域の内部と交差しているかどうかをテストします。
    boolean
    intersectsLine(double x1, double y1, double x2, double y2)
    指定されたライン・セグメントが、このRectangle2Dの内部と交差するかどうかを判定します。
    boolean
    指定されたライン・セグメントが、このRectangle2Dの内部と交差するかどうかを判定します。
    int
    このRectangle2Dを基準に、指定されたPoint2Dがある場所を判定します。
    void
    setFrame(double x, double y, double w, double h)
    このRectangle2Dの外部境界の位置およびサイズを、指定された矩形値に設定します。
    void
    このRectangle2Dを、指定されたRectangle2Dと同じになるように設定します。
    static void
    元のRectangle2Dオブジェクトのペアを結合し、その結果を指定された転送先Rectangle2Dオブジェクトに格納します。

    クラスで宣言されたメソッド RectangularShape

    clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
    修飾子と型
    メソッド
    説明
    このオブジェクトと同じクラスで、同じ内容の新しいオブジェクトを作成します。
    boolean
    指定されたPoint2Dが、内側の定義によって記述されたShapeの境界の内側にあるかどうかをテストします。
    boolean
    Shapeの内部に、指定されたRectangle2Dが完全に含まれるかどうかをテストします。
    double
    Shapeの表示枠矩形の中心のX座標をdouble精度で返します。
    double
    Shapeの表示枠矩形の中心のY座標をdouble精度で返します。
    このオブジェクトの形状全体を定義する表示枠Rectangle2Dを返します。
    double
    Shapeの表示枠矩形の最大のX座標をdouble精度で返します。
    double
    Shapeの表示枠矩形の最大のY座標をdouble精度で返します。
    double
    Shapeの表示枠矩形の最小のX座標をdouble精度で返します。
    double
    Shapeの表示枠矩形の最小のY座標をdouble精度で返します。
    boolean
    Shapeの内部が指定されたRectangle2Dの内部と交差しているかどうかをテストします。
    void
    このShapeの表示枠矩形の位置とサイズを、それぞれ指定されたPoint2DDimension2Dに設定します。
    void
    このShapeの表示枠矩形を、指定されたRectangle2Dに設定します。
    void
    setFrameFromCenter(double centerX, double centerY, double cornerX, double cornerY)
    このShapeの表示枠矩形を、指定された中心点および角の点の座標に基づいて設定します。
    void
    このShapeの表示枠矩形を、中心を表すPoint2Dおよび角を表すPoint2Dに基づいて設定します。
    void
    setFrameFromDiagonal(double x1, double y1, double x2, double y2)
    このShapeの表示枠矩形の対角線を、指定された2つの座標に基づいて設定します。
    void
    このShapeの表示枠矩形の対角線を、指定された2つのPoint2Dオブジェクトに基づいて設定します。

    クラスオブジェクトで宣言されたメソッド

    finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • UPDATE_WHEN_ON_EDT

      public static final int UPDATE_WHEN_ON_EDT
      イベント・ディスパッチ・スレッドでドキュメントの変更が行われる場合にのみキャレット位置が更新されることを示します。
      導入されたバージョン:
      1.5
      関連項目:
    • NEVER_UPDATE

      public static final int NEVER_UPDATE
      削除のせいでドキュメントの長さが現在のキャレット位置よりも短くなる場合を除き、ドキュメントの更新に関係なく、ドキュメント内のキャレットの絶対位置が変わらないことを示します。 ドキュメントの長さが現在のキャレット位置よりも短くなる場合は、ドキュメントの末尾に合わせてキャレット位置が調整されます。
      導入されたバージョン:
      1.5
      関連項目:
    • ALWAYS_UPDATE

      public static final int ALWAYS_UPDATE
      ドキュメントの更新がイベント・ディスパッチ・スレッドで行われるかどうかに関係なく、ドキュメントの変更に従ってキャレット位置が必ず更新されることを示します。
      導入されたバージョン:
      1.5
      関連項目:
    • listenerList

      protected EventListenerList listenerList
      イベント・リスナーのリストです。
    • changeEvent

      protected transient ChangeEvent changeEvent
      モデルの変更を示すイベントです。 イベント専用の(読込み専用)状態がソース・プロパティなので、必要なChangeEventの数はモデル・インスタンスごとに1つです。 ここで生成されたイベントのソースは、常に「this」です。
  • コンストラクタの詳細

    • DefaultCaret

      public DefaultCaret()
      デフォルトのキャレットを構築します。
  • メソッドの詳細

    • setUpdatePolicy

      public void setUpdatePolicy(int policy)
      ドキュメントの更新に対するキャレット移動ポリシーを設定します。 通常は、キャレット位置の前またはその位置に挿入が行われた場合、あるいはキャレット位置の前で削除が行われた場合に、ドキュメント内のキャレットの絶対位置が更新されます。 ここでの「絶対位置」とは、ドキュメントの先頭を基準にした位置のことです。 たとえば、編集可能なテキスト・コンポーネント内に文字を入力すると、その文字はキャレット位置に挿入され、キャレットは挿入のせいでドキュメント内の次の絶対位置に移動します。次に、BACKSPACEを入力すると、キャレット位置の前にある文字が削除されたためにキャレットの絶対位置が減少します。 場合によっては、キャレット位置の更新をオフにして、ドキュメントの更新に関係なく、ドキュメント位置におけるキャレットの絶対位置を同じままにしておくことが有効なこともあります。

      次の更新ポリシーを設定できます。

      • NEVER_UPDATE: 削除のせいでドキュメントの長さが現在のキャレット位置よりも短くなる場合を除き、ドキュメントの更新に関係なく、ドキュメント内のキャレットの絶対位置が変わらないことを示します。 ドキュメントの長さが現在のキャレット位置よりも短くなる場合は、ドキュメントの末尾に合わせてキャレット位置が調整されます。 このポリシーの使用時は、キャレットは関連したビューをスクロールして、キャレット自体を可視状態にしておこうとはしません。
      • ALWAYS_UPDATE: キャレットは常にドキュメントの変更を追跡します。 通常の変更では、キャレットの現在位置の前またはその位置に挿入が行われると、キャレット位置が増加し、キャレットの現在位置の前で削除が行われると、キャレット位置が減少します。 更新を元に戻したり、再実行したりする場合、キャレットは常に更新が行われた位置に移動します。 また、キャレットはadjustVisibilityメソッドを呼び出して、キャレット自体を可視状態にしておこうとします。
      • UPDATE_WHEN_ON_EDT: ドキュメントの更新がイベント・ディスパッチ・スレッドに対して行われた場合は、ALWAYS_UPDATEのように動作し、ほかのスレッドに対して行われた場合は、NEVER_UPDATEのように動作します。

      プロパティのデフォルト値はUPDATE_WHEN_ON_EDTです。

      パラメータ:
      policy - 次の値のいずれか。UPDATE_WHEN_ON_EDT, NEVER_UPDATE, ALWAYS_UPDATE
      スロー:
      IllegalArgumentException - 渡された値が無効な場合
      導入されたバージョン:
      1.5
      関連項目:
    • getUpdatePolicy

      public int getUpdatePolicy()
      ドキュメントの更新に対するキャレット移動ポリシーを取得します。
      戻り値:
      次の値のいずれか。UPDATE_WHEN_ON_EDT, NEVER_UPDATE, ALWAYS_UPDATE
      導入されたバージョン:
      1.5
      関連項目:
    • getComponent

      protected final JTextComponent getComponent()
      このキャレットがバインドされているテキスト・エディタ・コンポーネントを取得します。
      戻り値:
      コンポーネント
    • repaint

      protected final void repaint()
      キャレットを描画します。 描画し直す領域は、キャレットのバウンディング・ボックス(キャレットの矩形、つまりthis)です。

      このメソッドはスレッド・セーフですが、ほとんどのSwingメソッドは違います。 詳細は、Swingでの並行性に関連しているサイトを参照してください。

    • damage

      protected void damage(Rectangle r)
      キャレットを囲む領域を壊して、新しい位置に再ペイントされるようにします。 paint()の実装をやり直した場合は、このメソッドも実装し直してください。 このメソッドは、キャレットの境界(x、y、幅、高さ)を更新します。
      パラメータ:
      r - キャレットの現在の位置
      関連項目:
    • adjustVisibility

      protected void adjustVisibility(Rectangle nloc)
      必要に応じて、関連するビューをスクロールして、キャレットを表示します。 この操作の処理方法はポリシーによって変わるので、メソッドの実装をやり直して動作を変更してもかまいません。 デフォルトでは、関連するコンポーネントでscrollRectToVisibleメソッドが呼び出されます。
      パラメータ:
      nloc - スクロール先の新しい位置
    • getSelectionPainter

      protected Highlighter.HighlightPainter getSelectionPainter()
      ハイライタのペインタを取得します。
      戻り値:
      ペインタ
    • positionCaret

      protected void positionCaret(MouseEvent e)
      viewToModel()を使用して、マウス・イベントの座標からキャレットの位置の設定を試みます。
      パラメータ:
      e - マウス・イベント
    • moveCaret

      protected void moveCaret(MouseEvent e)
      viewToModel()を使用して、マウス・イベントの座標からキャレットの移動を試みます。 ドットとマークの位置が異なる場合は、範囲の選択になります。
      パラメータ:
      e - マウス・イベント
    • focusGained

      public void focusGained(FocusEvent e)
      キャレットを含むコンポーネントがフォーカスを取得したときに呼び出されます。 編集可能なコンポーネントのキャレットを可視に設定するために実装されています。
      定義:
      focusGained、インタフェースFocusListener
      パラメータ:
      e - フォーカス・イベント
      関連項目:
    • focusLost

      public void focusLost(FocusEvent e)
      キャレットを含むコンポーネントがフォーカスを失ったときに呼び出されます。 キャレットの可視属性をfalseに設定するために実装されています。
      定義:
      focusLost、インタフェースFocusListener
      パラメータ:
      e - フォーカス・イベント
      関連項目:
    • mouseClicked

      public void mouseClicked(MouseEvent e)
      マウスがクリックされたときに呼び出されます。 ボタン1がクリックされた場合、ダブルクリックでは単語を、トリプル・クリックでは現在の行(1行)を選択します。
      定義:
      mouseClicked、インタフェースMouseListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • mousePressed

      public void mousePressed(MouseEvent e)
      ボタン1がクリックされた場合に、関連するテキスト・コンポーネントへのフォーカスを要求し、キャレットの位置を設定するために実装されます。 Shiftキーを押したままだと、キャレットは選択範囲内に移動されることもあります。押していなければ、キャレットの位置は新しい位置に設定されます。 コンポーネントが有効になっていない場合は、フォーカスの要求は出されません。
      定義:
      mousePressed、インタフェースMouseListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • mouseReleased

      public void mouseReleased(MouseEvent e)
      マウス・ボタンを離したときに呼び出されます。
      定義:
      mouseReleased、インタフェースMouseListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • mouseEntered

      public void mouseEntered(MouseEvent e)
      マウスが領域に入ったときに呼び出されます。
      定義:
      mouseEntered、インタフェースMouseListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • mouseExited

      public void mouseExited(MouseEvent e)
      マウスが領域から出たときに呼び出されます。
      定義:
      mouseExited、インタフェースMouseListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • mouseDragged

      public void mouseDragged(MouseEvent e)
      マウス・ポインタの現在位置に従って、キャレットを移動します。 事実上、選択範囲を延長することになります。 デフォルトでは、マウス・ボタン1をクリックした場合のみ実行されます。
      定義:
      mouseDragged、インタフェースMouseMotionListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • mouseMoved

      public void mouseMoved(MouseEvent e)
      マウスが移動したときに呼び出されます。
      定義:
      mouseMoved、インタフェースMouseMotionListener
      パラメータ:
      e - マウス・イベント
      関連項目:
    • paint

      public void paint(Graphics g)
      キャレットを垂直線としてレンダリングします。 この実装をやり直した場合は、damageメソッドの実装もやり直してください。これは、damageメソッドが、キャレットの形状を垂直線と仮定しているからです。 キャレットの色は、getCaretColor()の戻り値に従って設定します。

      関連したドキュメントに複数のテキスト方向がある場合は、キャレットのバイアスを示すフラグが描画されます。 これは、関連するドキュメントがAbstractDocumentのサブクラスであり、かつ、BIDI要素構造内に複数のBIDIレベルが存在する場合(すなわち、テキストがテキスト自身に関連した複数の方向を持っている場合)にのみ発生します。

      定義:
      paint、インタフェースCaret
      パラメータ:
      g - グラフィックス・コンテキスト
      関連項目:
    • install

      public void install(JTextComponent c)
      JTextComponentのインタフェースにUIがインストールされるときに呼び出されます。 このメソッドを使うと、このインタフェースの実装によってナビゲートされているモデルにアクセスできます。 dotとmarkを0に設定し、ドキュメント、プロパティの変更、フォーカス、マウス、およびマウス移動のリスナーを生成します。
      定義:
      install、インタフェースCaret
      パラメータ:
      c - コンポーネント
      関連項目:
    • deinstall

      public void deinstall(JTextComponent c)
      UIがJTextComponentのインタフェースから削除されたときに呼び出されます。 このメソッドは、追加されたリスナーの登録を解除するために使用されます。
      定義:
      deinstall、インタフェースCaret
      パラメータ:
      c - コンポーネント
      関連項目:
    • addChangeListener

      public void addChangeListener(ChangeListener l)
      キャレットの移動を常に追跡するために、リスナーを追加します。
      定義:
      addChangeListener、インタフェースCaret
      パラメータ:
      l - リスナー
      関連項目:
    • removeChangeListener

      public void removeChangeListener(ChangeListener l)
      キャレットの移動を追跡しているリスナーを削除します。
      定義:
      removeChangeListener、インタフェースCaret
      パラメータ:
      l - リスナー
      関連項目:
    • getChangeListeners

      public ChangeListener[] getChangeListeners()
      このキャレットに登録された、すべての変更リスナーからなる配列を返します。
      戻り値:
      このキャレットのすべてのChangeListener。変更リスナーが現在登録されていない場合は空の配列
      導入されたバージョン:
      1.4
      関連項目:
    • fireStateChanged

      protected void fireStateChanged()
      このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベント・インスタンスは、fireメソッドに渡されるパラメータを使って簡単に生成されます。 リスナーのリストは、最後から先頭に向かって処理されます。
      関連項目:
    • getListeners

      public <T extends EventListener> T[] getListeners(Class<T> listenerType)
      このキャレットにFooListenerとして現在登録されているすべてのオブジェクトの配列を返します。 FooListenerは、addFooListenerメソッドを使用して登録されます。

      FooListener.classなどのクラス・リテラルを使用してlistenerType引数を指定できます。 たとえば、次のコードを使用すると、DefaultCaret cの変更リスナーを照会できます。

      ChangeListener[] cls = (ChangeListener[])(c.getListeners(ChangeListener.class));
      このようなリスナーがない場合は空の配列を返します。

      型パラメータ:
      T - リスナー型
      パラメータ:
      listenerType - リクエストされたリスナーの型
      戻り値:
      このコンポーネント上でFooListenerとして登録されたすべてのオブジェクトの配列、またはこのようなリスナーが追加されていない場合は空の配列
      スロー:
      ClassCastException - listenerTypeで、java.util.EventListenerを実装するクラスまたはインタフェースが指定されなかった場合
      導入されたバージョン:
      1.3
      関連項目:
    • setSelectionVisible

      public void setSelectionVisible(boolean vis)
      選択範囲の可視性を変更します。
      定義:
      setSelectionVisible、インタフェースCaret
      パラメータ:
      vis - 新しい可視性
    • isSelectionVisible

      public boolean isSelectionVisible()
      現在の選択範囲が可視であるかどうかを判定します。
      定義:
      isSelectionVisible、インタフェースCaret
      戻り値:
      選択範囲が可視の場合はtrue
    • isActive

      public boolean isActive()
      キャレットが現在アクティブであるかどうかを判定します。

      このメソッドは、キャレットが現在点滅状態にあるかどうかを返します。 キャレットの点滅が現在オンまたはオフのどちらになっているかの情報は返しません。 キャレットが現在ペイントされるかどうかを確認するには、isVisibleメソッドを使用してください。

      戻り値:
      true (アクティブな場合)。そうでない場合はfalse
      導入されたバージョン:
      1.5
      関連項目:
    • isVisible

      public boolean isVisible()
      キャレットが現在可視状態であるかどうかを示します。 キャレットは点滅するため、このメソッドの戻り値は、キャレットがペイントされる場合はtrueとなり、キャレットがペイントされない場合はfalseとなります。isActiveは、キャレットが点滅状態にあるかどうかを示します。たとえば、キャレットを可視にできる場合、isVisibleはキャレットが実際に可視状態かどうかを示します。

      別の点滅するキャレットを描画する場合は、サブクラスでpaintメソッドをオーバーライドし、そのメソッドがtrueを返した場合にのみキャレットをペイントします。

      定義:
      isVisible、インタフェースCaret
      戻り値:
      可視の場合はtrue、そうでない場合はfalse
      関連項目:
    • setVisible

      public void setVisible(boolean e)
      キャレットの可視性を設定し、キャレットを再ペイントします。 このメソッドと、isVisibleおよびisActiveとの関係を理解することが大切です。 このメソッドをtrueの値で呼び出すと、キャレットの点滅がアクティブになります。 これをfalseに設定すると、キャレットの点滅が完全にオフになります。 点滅がアクティブかどうかを確認するには、isActiveを呼び出す必要があります。 要するに、isActiveはこのメソッドの適切な対応するgetterメソッドです。isVisibleを使用すると、キャレットの現在の可視ステータス、つまりキャレットが現在ペイントされるかどうかを取り出すことができます。 このステータスは、キャレットの点滅のオン/オフに伴って変わります。

      次に、このメソッドを呼び出してあとで、isActiveおよびisVisibleの考えられる戻り値のリストを示します。

      setVisible(true):

      • isActive():true
      • isVisible(): キャレットの点滅がオンまたはオフのどちらになるかによってtrueまたはfalse

      setVisible(false):

      • isActive():false
      • isVisible():false

      定義:
      setVisible、インタフェースCaret
      パラメータ:
      e - 可視性指定子
      関連項目:
    • setBlinkRate

      public void setBlinkRate(int rate)
      キャレットの点滅間隔を設定します。
      定義:
      setBlinkRate、インタフェースCaret
      パラメータ:
      rate - ミリ秒単位の間隔で、0の場合は点滅を停止
      関連項目:
    • getBlinkRate

      public int getBlinkRate()
      キャレットの点滅間隔を取得します。
      定義:
      getBlinkRate、インタフェースCaret
      戻り値:
      ミリ秒単位の遅延。 キャレットの点滅がない場合は0。
      関連項目:
    • getDot

      public int getDot()
      キャレットの現在の位置を取り出します。
      定義:
      getDot、インタフェースCaret
      戻り値:
      位置>= 0
      関連項目:
    • getMark

      public int getMark()
      マークの現在の位置を取り出します。 選択範囲がある場合、dotとmarkは同じにはなりません。
      定義:
      getMark、インタフェースCaret
      戻り値:
      位置>= 0
      関連項目:
    • setDot

      public void setDot(int dot)
      転送バイアスを使って、キャレット位置を設定し、指定された位置をマークします。 選択範囲が、暗黙のうちにゼロに設定されます。
      定義:
      setDot、インタフェースCaret
      パラメータ:
      dot - 位置>= 0
      関連項目:
    • moveDot

      public void moveDot(int dot)
      転送バイアスを使って、キャレット位置を指定された位置に移動します。
      定義:
      moveDot、インタフェースCaret
      パラメータ:
      dot - 位置>= 0
      関連項目:
    • moveDot

      public void moveDot(int dot, Position.Bias dotBias)
      指定されたバイアスを使って、キャレット位置を指定された位置に移動します。
      パラメータ:
      dot - 位置>= 0
      dotBias - 位置のバイアス。null以外
      スロー:
      IllegalArgumentException - バイアスがnullの場合
      導入されたバージョン:
      1.6
      関連項目:
    • setDot

      public void setDot(int dot, Position.Bias dotBias)
      指定されたバイアスを使って、キャレット位置を設定し、指定された位置をマークします。 選択範囲が、暗黙のうちにゼロに設定されます。
      パラメータ:
      dot - 位置>= 0
      dotBias - 位置のバイアス。null以外
      スロー:
      IllegalArgumentException - バイアスがnullの場合
      導入されたバージョン:
      1.6
      関連項目:
    • getDotBias

      public Position.Bias getDotBias()
      キャレットの位置のバイアスを返します。
      戻り値:
      キャレットの位置のバイアス
      導入されたバージョン:
      1.6
    • getMarkBias

      public Position.Bias getMarkBias()
      マークのバイアスを返します。
      戻り値:
      マークのバイアス
      導入されたバージョン:
      1.6
    • setMagicCaretPosition

      public void setMagicCaretPosition(Point p)
      キャレットの現在の位置を保存します。 キャレットが上下に動き、終端位置が均等でない行の間を移動する場合に使用します。
      定義:
      setMagicCaretPosition、インタフェースCaret
      パラメータ:
      p - 位置
      関連項目:
    • getMagicCaretPosition

      public Point getMagicCaretPosition()
      保存されているキャレットの位置を取得します。
      定義:
      getMagicCaretPosition、インタフェースCaret
      戻り値:
      位置#setMagicCaretPositionを参照
      関連項目:
    • equals

      public boolean equals(Object obj)
      このオブジェクトを指定されたオブジェクトと比較します。 矩形を比較するというスーパー・クラスの動作は必要ないため、Object動作に変更されます。
      オーバーライド:
      equals、クラスRectangle
      パラメータ:
      obj - このフォントと比較されるオブジェクト
      戻り値:
      オブジェクトが等しい場合はtrue、そうでない場合はfalse
      関連項目: