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

クラスDefaultStyledDocument

  • すべての実装されたインタフェース:
    Serializable, Document, StyledDocument
    直系の既知のサブクラス:
    HTMLDocument

    public class DefaultStyledDocument
    extends AbstractDocument
    implements StyledDocument
    Rich Text Formatに類似した方式を使って、字体や段落書式をマークアップできるドキュメントです。 このドキュメントの要素構造は、スタイル・ランのスタイルの組み合わせを表します。 こうしたスタイル・ランは、段落要素の構造(ほかの構造に格納されている場合もあり)に対応付けられます。 論理書式が段落境界に指定されているので、スタイル・ランは段落境界で分割されます。

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

    関連項目:
    Document, AbstractDocument, 「直列化されたフォーム」
    • コンストラクタの詳細

      • DefaultStyledDocument

        public DefaultStyledDocument​(AbstractDocument.Content c,
                                     StyleContext styles)
        書式付きドキュメントを構築します。
        パラメータ:
        c - コンテンツのコンテナ
        styles - ドキュメント間で共有できるリソースと書式定義
      • DefaultStyledDocument

        public DefaultStyledDocument​(StyleContext styles)
        デフォルトのコンテンツ・ストレージの実装と書式の共有セットを使って、書式付きドキュメントを構築します。
        パラメータ:
        styles - スタイル
      • DefaultStyledDocument

        public DefaultStyledDocument()
        デフォルトの書式付きドキュメントを構築します。 これは入力コンテンツをBUFFER_SIZE_DEFAULTのサイズによってバッファ処理し、ドキュメントの寿命によってスコープされたスタイル・コンテキストを持ち、ほかのドキュメントとは共有されません。
    • メソッドの詳細

      • create

        protected void create​(DefaultStyledDocument.ElementSpec[] data)
        ドキュメントを初期化して、指定された要素構造(getDefaultRootElementメソッドによって報告される構造)を反映します。 ドキュメントがなんらかのデータを保持している場合、それが最初に削除されます。
        パラメータ:
        data - 要素データ
      • insert

        protected void insert​(int offset,
                              DefaultStyledDocument.ElementSpec[] data)
                       throws BadLocationException
        新しい要素を一括して挿入します。 これは、ロック解除状態のドキュメントを構文解析して、要素構造の変更を準備するのに役立ちます。 このメソッドは、要素構造を更新する方法を記述するトークンの配列を取得するので、書込みロックに入る時間を非同期的な更新状況で大幅に減らすことができます。

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

        パラメータ:
        offset - 開始オフセット>= 0
        data - 要素データ
        例外:
        BadLocationException - 開始オフセットが無効な場合
      • removeElement

        public void removeElement​(Element elem)
        このドキュメントから要素を削除します。

        要素はその要素によって識別される範囲内のテキストと一緒に、その親要素から削除されます。 要素がドキュメントと関連付けられていない場合、 IllegalArgumentExceptionがスローされます。

        ドキュメント内に空の枝の要素があることは許可されないため、要素が唯一の子の場合、その親要素も再帰的に削除されます。 したがって、ある要素のすべての子を置換する場合、古い子を削除する前に新しい子を追加する必要があります。

        要素を削除すると、要素構造の変化に対するDocumentEventと、ドキュメント内容の変更に対する UndoableEditEventの2つのイベントがトリガーされます。

        要素にコンテンツの終わりのマークが含まれている場合(ドキュメントの最後の "\n"文字)、この文字は削除されず、その前の葉要素が拡張されてこの文字を含めます。 最後の葉がすでに"\n",で終わっている場合、その文字はコンテンツの削除に含められます。

        要素がnullの場合、NullPointerExceptionがスローされます。 削除後に要素構造が無効になる場合(たとえば要素がドキュメントのルート要素である場合)、 IllegalArgumentExceptionがスローされます。 現在の要素構造が無効である場合、IllegalStateExceptionがスローされます。

        パラメータ:
        elem - 削除する要素
        例外:
        NullPointerException - 要素がnullの場合
        IllegalArgumentException - 要素を削除できなかった場合
        IllegalStateException - 要素の構造が無効な場合
        導入されたバージョン:
        1.7
      • addStyle

        public Style addStyle​(String nm,
                              Style parent)
        論理書式階層に新しい書式を追加します。 書式の属性は下から上に向かって解釈処理されるので、子で指定された属性は親で指定された属性をオーバーライドします。
        定義:
        addStyle、インタフェース: StyledDocument
        パラメータ:
        nm - 書式の名前(名前付き書式のコレクションの中で一意である必要がある)。 書式に名前が付いていない場合はこの名前をnullにしても構わないが、呼出し側は名前のない書式が名前で取得できない場合に返される参照を管理する責任がある。 名前のない書式は、スタイル・ランで見られるような文字属性のオーバーライドなどで便利な場合がある。
        parent - 親書式。 指定されていない属性がほかの書式で解釈処理される必要がない場合はnullも可。
        戻り値:
        書式
      • removeStyle

        public void removeStyle​(String nm)
        以前にドキュメントに追加された名前付き書式を削除します。
        定義:
        removeStyle、インタフェース: StyledDocument
        パラメータ:
        nm - 削除される書式の名前
      • getStyle

        public Style getStyle​(String nm)
        以前に追加された名前付き書式を取得します。
        定義:
        getStyle、インタフェース: StyledDocument
        パラメータ:
        nm - 書式の名前
        戻り値:
        書式
      • getStyleNames

        public Enumeration<?> getStyleNames()
        スタイル名のリストを取得します。
        戻り値:
        すべての書式名
      • setLogicalStyle

        public void setLogicalStyle​(int pos,
                                    Style s)
        指定された位置の段落に使用する論理書式を設定します。 文字および段落の属性に対して明示的に属性が設定されていない場合、属性はその段落に割り当てられている論理書式を介して解釈処理されます。同様に、論理書式はドキュメント内の要素階層にまったく依存しない階層を介して解釈処理されます。

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

        定義:
        setLogicalStyle、インタフェース: StyledDocument
        パラメータ:
        pos - ドキュメントの先頭からのオフセット>= 0
        s - 段落に割り当てられた論理書式。ない場合はnull
      • getLogicalStyle

        public Style getLogicalStyle​(int p)
        指定された位置によって表された段落に割り当てられた論理書式を取得します。
        定義:
        getLogicalStyle、インタフェース: StyledDocument
        パラメータ:
        p - 段落に変換して、割り当てる論理書式を指定する位置>= 0。 これは、ドキュメントの先頭からのオフセット。
        戻り値:
        書式。ない場合はnull
      • setCharacterAttributes

        public void setCharacterAttributes​(int offset,
                                           int length,
                                           AttributeSet s,
                                           boolean replace)
        ドキュメントの一部に属性を設定します。 この処理は変更の実行中に書込みロックを保持し、変更が適切に完了するとDocumentEventがリスナーに送られます。

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

        定義:
        setCharacterAttributes、インタフェース: StyledDocument
        パラメータ:
        offset - ドキュメントのオフセット>= 0
        length - 長さ>= 0
        s - 属性
        replace - 新しい属性の設定前に従来の属性を置換する必要がある場合はtrue
      • setParagraphAttributes

        public void setParagraphAttributes​(int offset,
                                           int length,
                                           AttributeSet s,
                                           boolean replace)
        段落に属性を設定します。

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

        定義:
        setParagraphAttributes、インタフェース: StyledDocument
        パラメータ:
        offset - 段落に対するオフセット>= 0
        length - 影響を受ける文字数>= 0
        s - 属性
        replace - 既存の属性を置換するか、マージするか
      • getParagraphElement

        public Element getParagraphElement​(int pos)
        オフセットposの段落の要素を取得します。 1つの段落は、少なくとも1つの、通常は葉である子のElementから構成されています。
        定義:
        getParagraphElement、インタフェース: StyledDocument
        定義:
        getParagraphElement、クラス: AbstractDocument
        パラメータ:
        pos - 開始オフセット>= 0
        戻り値:
        要素
      • getCharacterElement

        public Element getCharacterElement​(int pos)
        位置に基づいて文字要素を取得します。
        定義:
        getCharacterElement、インタフェース: StyledDocument
        パラメータ:
        pos - ドキュメント内の位置>= 0
        戻り値:
        要素
      • insertUpdate

        protected void insertUpdate​(AbstractDocument.DefaultDocumentEvent chng,
                                    AttributeSet attr)
        ドキュメント構造をテキスト挿入の結果で更新します。 これは、書込みロック内で発生します。 この実装は、挿入されたコンテンツを単に改行ごとに構文解析し、要素バッファに対する一連の指示を構築します。
        Overrides:
        insertUpdate、クラス: AbstractDocument
        パラメータ:
        chng - ドキュメント変更の説明
        attr - 属性
      • createDefaultRoot

        protected AbstractDocument.AbstractElement createDefaultRoot()
        デフォルトのドキュメント構造を表すために使うルート要素を作成します。
        戻り値:
        要素ベース
      • getForeground

        public Color getForeground​(AttributeSet attr)
        属性セットからフォアグラウンド・カラーを取得します。
        定義:
        getForeground、インタフェース: StyledDocument
        パラメータ:
        attr - 属性セット
        戻り値:
      • getBackground

        public Color getBackground​(AttributeSet attr)
        属性セットからバックグラウンド・カラーを取得します。
        定義:
        getBackground、インタフェース: StyledDocument
        パラメータ:
        attr - 属性セット
        戻り値:
      • getFont

        public Font getFont​(AttributeSet attr)
        属性セットからフォントを取得します。
        定義:
        getFont、インタフェース: StyledDocument
        パラメータ:
        attr - 属性セット
        戻り値:
        フォント
      • styleChanged

        protected void styleChanged​(Style style)
        このドキュメントの書式が変更されたときに呼び出されます。 サブクラスでは、何がダメージを受けたかわかるようにする必要があることがあります。
        パラメータ:
        style - 変更されたStyle