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

クラスJTextArea

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible, Scrollable


    @JavaBean(defaultProperty="UIClassID",
              description="A multi-line area that displays plain text.")
    public class JTextArea
    extends JTextComponent
    JTextAreaは、プレーン・テキストを表示する複数行の領域です。 この処理を適切に行うjava.awt.TextAreaクラスとのソースの互換性を提供する軽量コンポーネントとして用意されています。 テキスト・コンポーネントの詳細および例については、「The Java Tutorial」の「Using Text Components」を参照してください。

    このコンポーネントは、java.awt.TextAreaクラスにはない機能を備えています。 追加機能については、スーパー・クラスを参照してください。 より多くの機能を備えた複数行テキスト・クラスとして、ほかにJTextPaneJEditorPaneがあります。

    java.awt.TextAreaは内部的にスクロールを処理します。 JTextAreaはスクロールを管理しない点では異なりますが、SwingのScrollableインタフェースを実装します。 これにより、そのインタフェースをスクロール動作が必要な場合にJScrollPaneの内部に配置し、スクロールの動作が不要な場合に直接使えるようにできます。

    java.awt.TextAreaは行折返しを行う機能を備えています。 これは、水平スクロール・ポリシーで制御されていました。 スクロールはJTextAreaによって直接実行されないため、下位互換性は別の方法で提供される必要があります。 JTextAreaには、行を折り返すかどうかを制御する行折返しのバウンド・プロパティがあります。 デフォルトでは、行折返しプロパティはfalse (折り返さない)に設定されています。

    java.awt.TextAreaには、適切なサイズを指定するために使用されるrowsおよびcolumnsの2つのプロパティがあります。 JTextAreaはこれらのプロパティを使って、java.awt.TextAreaで提供される機能と一致するようにJScrollPaneの内部にビュー・ポートを配置する際の適切なサイズを示します。 JTextAreaには、テキストすべての表示に必要となる最適なサイズが用意されているので、ビュー・ポートはJScrollPaneの内部で適切に機能します。 rowsまたはcolumnsの値が0のとき、その軸に沿った最適なサイズが、同じ軸に沿ったビュー・ポートの適切なサイズに使用されます。

    java.awt.TextAreaの変更を監視するには、TextEventTextListenerを追加します。 JTextComponentベースのコンポーネントでは、DocumentEvent経由でモデルからDocumentListenersに変更が送られます。 DocumentEventは、必要に応じて、変更位置と変更の種類を提供します。 この部分のコードは次のようになります。

        DocumentListener myListener = ??;
        JTextArea myArea = ??;
        myArea.getDocument().addDocumentListener(myListener);
     
    Newlines
    改行の処理方法については、DefaultEditorKitを参照してください。

    警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

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

    導入されたバージョン:
    1.2
    関連項目:
    JTextPane, JEditorPane, 「直列化されたフォーム」
    • コンストラクタの詳細

      • JTextArea

        public JTextArea​()
        新しいTextAreaを構築します。 デフォルト・モデルが設定され、初期文字列はnull、行/列数は0に設定されます。
      • JTextArea

        public JTextArea​(String text)
        指定された表示テキストで新しいTextAreaを構築します。 デフォルト・モデルが作成され、行/列数は0に設定されます。
        パラメータ:
        text - 表示されるテキストまたはnull
      • JTextArea

        public JTextArea​(int rows,
                         int columns)
        指定された行数と列数で新しい空のTextAreaを構築します。 デフォルト・モデルが作成され、初期文字列はnullに設定されます。
        パラメータ:
        rows - 行数>= 0
        columns - 列数>= 0
        例外:
        IllegalArgumentException - 行または列の引数が負の数の場合。
      • JTextArea

        public JTextArea​(String text,
                         int rows,
                         int columns)
        指定されたテキストと行数と列数で新しいTextAreaを構築します。 デフォルト・モデルが作成されます。
        パラメータ:
        text - 表示されるテキストまたはnull
        rows - 行数>= 0
        columns - 列数>= 0
        例外:
        IllegalArgumentException - 行または列の引数が負の数の場合。
      • JTextArea

        public JTextArea​(Document doc)
        指定されたドキュメント・モデルと、ほかの引数はすべてデフォルト(null, 0, 0)で、新しいJTextAreaを構築します。
        パラメータ:
        doc - 使用するモデル
      • JTextArea

        public JTextArea​(Document doc,
                         String text,
                         int rows,
                         int columns)
        指定された行数と列数、および指定されたモデルで新しいJTextAreaを構築します。 コンストラクタのすべては、このコンストラクタに波及効果をもたらします。
        パラメータ:
        doc - 使用するモデル。ただしnullの場合は、デフォルト・モデルを作成する
        text - 表示されるテキスト。ない場合はnull
        rows - 行数>= 0
        columns - 列数>= 0
        例外:
        IllegalArgumentException - 行または列の引数が負の数の場合。
    • メソッドの詳細

      • createDefaultModel

        protected Document createDefaultModel​()
        モデルが明示的に指定されない場合は、構築時に使うモデルのデフォルト実装を作成します。 PlainDocumentの新しいインスタンスが返されます。
        戻り値:
        デフォルトのドキュメント・モデル
      • setTabSize

        @BeanProperty(preferred=true,
                      description="the number of characters to expand tabs to")
        public void setTabSize​(int size)
        タブを展開する文字数を設定します。 可変幅フォントに対しては最大有効幅が乗算されます。 タブのサイズが変更されると、PropertyChangeイベント(tabSize)が発生します。
        パラメータ:
        size - 展開する文字数
        関連項目:
        getTabSize()
      • getTabSize

        public int getTabSize​()
        タブを展開する文字数を取得します。 ドキュメントがnullの場合、あるいはタブ設定を持たない場合は、デフォルトの8を返します。
        戻り値:
        文字数
      • setLineWrap

        @BeanProperty(preferred=true,
                      description="should lines be wrapped")
        public void setLineWrap​(boolean wrap)
        テキスト領域の行折返しポリシーを設定します。 trueに設定すると、割当て幅に収まりきらない長さの行は折り返されます。 falseに設定すると、行は折り返されません。 ポリシーを変更すると、PropertyChangeイベント(lineWrap)が発生します。 デフォルトではこのプロパティはfalseです。
        パラメータ:
        wrap - 行を折り返すかどうかを示す
        関連項目:
        getLineWrap()
      • getLineWrap

        public boolean getLineWrap​()
        テキスト領域の行折返しポリシーを返します。 trueに設定すると、割当て幅に収まりきらない長さの行は折り返されます。 falseに設定すると、行は折り返されません。
        戻り値:
        行が折り返されるかどうか
      • setWrapStyleWord

        @BeanProperty(description="should wrapping occur at word boundaries")
        public void setWrapStyleWord​(boolean word)
        テキスト領域が折返し行の場合に使う折返し書式を設定します。 trueに設定すると、割当て幅に収まりきらない長さの行はワード境界(空白部分)で折り返されます。 falseに設定すると、行は文字境界で折り返されます。 デフォルトではこのプロパティはfalseです。
        パラメータ:
        word - 行折返しにワード境界を使用するかどうかを示す
        関連項目:
        getWrapStyleWord()
      • getWrapStyleWord

        public boolean getWrapStyleWord​()
        テキスト領域が折返し行の場合に使う折返し書式を返します。 trueに設定すると、割当て幅に収まりきらない長さの行はワード境界(空白部分)で折り返されます。 falseに設定すると、行は文字境界で折り返されます。
        戻り値:
        折返し書式が文字境界でなくワード境界かどうか
        関連項目:
        setWrapStyleWord(boolean)
      • getLineOfOffset

        public int getLineOfOffset​(int offset)
                            throws BadLocationException
        コンポーネント・テキストのオフセットを行番号に変換します。
        パラメータ:
        offset - オフセット>= 0
        戻り値:
        行番号>= 0
        例外:
        BadLocationException - オフセットが0より小さい場合、またはドキュメントの長さより大きい場合。
      • getLineCount

        @BeanProperty(bound=false)
        public int getLineCount​()
        領域内に収める行数を返します。
        戻り値:
        行数> 0
      • getLineStartOffset

        public int getLineStartOffset​(int line)
                               throws BadLocationException
        指定された行の開始オフセットを返します。
        パラメータ:
        line - 変換対象の行番号>= 0
        戻り値:
        オフセット>= 0
        例外:
        BadLocationException - 行が0より小さい場合、またはドキュメントに含まれる行数(getLineCountから報告される)以上である場合にスローされる。
      • getLineEndOffset

        public int getLineEndOffset​(int line)
                             throws BadLocationException
        指定された行の終了オフセットを返します。
        パラメータ:
        line - 行>= 0
        戻り値:
        オフセット>= 0
        例外:
        BadLocationException - 行が0より小さい場合、またはドキュメントに含まれる行数(getLineCountから報告される)以上である場合にスローされる。
      • append

        public void append​(String str)
        指定されたテキストをドキュメントの末尾に追加します。 モデルがnullの場合、あるいは文字列がnullか空の場合には何も行いません。
        パラメータ:
        str - 挿入するテキスト
        関連項目:
        insert(java.lang.String, int)
      • replaceRange

        public void replaceRange​(String str,
                                 int start,
                                 int end)
        指定された開始位置から終了位置までのテキストを、新しい指定テキストで置き換えます。 モデルがnullの場合は何も行いません。 新しい文字列がnullまたは空の場合は、単純にdeleteを実行します。
        パラメータ:
        str - 置換えに使用するテキスト
        start - 開始位置>= 0
        end - 終了位置>= start
        例外:
        IllegalArgumentException - 範囲の一部がモデル内の無効な位置にある場合
        関連項目:
        insert(java.lang.String, int)
      • getRows

        public int getRows​()
        TextArea内の行数を返します。
        戻り値:
        行数>= 0
      • setRows

        @BeanProperty(bound=false,
                      description="the number of rows preferred for display")
        public void setRows​(int rows)
        このTextAreaの行数を設定します。 新しい値を設定したあとにinvalidate()を呼び出します。
        パラメータ:
        rows - 行数>= 0
        例外:
        IllegalArgumentException - 行が0より小さい場合
        関連項目:
        getRows()
      • getRowHeight

        protected int getRowHeight​()
        行の高さの意味を返します。 このデフォルトはフォントの高さです。
        戻り値:
        高さ>= 1
      • getColumns

        public int getColumns​()
        TextArea内の列数を返します。
        戻り値:
        列数>= 0
      • setColumns

        @BeanProperty(bound=false,
                      description="the number of columns preferred for display")
        public void setColumns​(int columns)
        このTextAreaの列数を設定します。 新しい値を設定したあとにinvalidate()を実行します。
        パラメータ:
        columns - 列数>= 0
        例外:
        IllegalArgumentException - columns 0より小さい場合
        関連項目:
        getColumns()
      • getColumnWidth

        protected int getColumnWidth​()
        列幅を返します。 フォントによっては、列は弱い意味しか持ちません。 このメソッドを使うと、1列の幅を定義できます。 デフォルトでは使用フォントの文字mの幅が定義されます。 このメソッドは、異なる幅になるように再定義できます。
        戻り値:
        列幅>= 1
      • setFont

        public void setFont​(Font f)
        現在のフォントを設定します。 キャッシュされた行の高さと列の幅を削除して新しいフォントの設定が反映されるようにし、revalidate()を呼び出します。
        オーバーライド:
        setFont 、クラス:  JComponent
        パラメータ:
        f - 現在のフォントとして使うフォント
        関連項目:
        Component.getFont()
      • paramString

        protected String paramString​()
        このJTextAreaの文字列表現を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。 返される文字列は空の場合がありますが、nullにはなりません。
        オーバーライド:
        paramString 、クラス:  JTextComponent
        戻り値:
        このJTextAreaの文字列表現。
      • getScrollableTracksViewportWidth

        @BeanProperty(bound=false)
        public boolean getScrollableTracksViewportWidth​()
        ビュー・ポートが常にこのScrollableの幅を強制的にビュー・ポートの幅に一致させる場合にtrueを返します。 これを実装すると、行折返しポリシーがtrueの場合はtrueを返し、行が折り返されない場合はfalseを返します。
        定義:
        getScrollableTracksViewportWidth 、インタフェース: Scrollable
        オーバーライド:
        getScrollableTracksViewportWidth 、クラス:  JTextComponent
        戻り値:
        ビュー・ポートがScrollableの幅を強制的にビュー・ポート自体の幅に一致させる場合はtrue。
      • getScrollableUnitIncrement

        public int getScrollableUnitIncrement​(Rectangle visibleRect,
                                              int orientation,
                                              int direction)
        論理行または論理列を表示するコンポーネントは、orientationの値によって、新しい1行または1列を完全にエクスポーズするスクロール増分値を計算します。 このメソッドを実装すると、getRowHeightメソッドとgetColumnWidthメソッドが返す値を使うことができます。

        JScrollPaneなどのスクロール・コンテナは、ユーザーがユニット・スクロールを要求すると、このメソッドを使用します。

        定義:
        getScrollableUnitIncrement 、インタフェース: Scrollable
        オーバーライド:
        getScrollableUnitIncrement 、クラス:  JTextComponent
        パラメータ:
        visibleRect - ビュー・ポート内の可視のビュー領域
        orientation - SwingConstants.VERTICALまたはSwingConstants.HORIZONTAL。
        direction - 上または左にスクロールする場合は0より小さく、下または右にスクロールする場合は0より大きい。
        戻り値:
        指定された方向にスクロールするための「ユニット」増分値
        例外:
        IllegalArgumentException - 方向が無効な場合
        関連項目:
        JScrollBar.setUnitIncrement(int), getRowHeight(), getColumnWidth()
      • getAccessibleContext

        @BeanProperty(bound=false)
        public AccessibleContext getAccessibleContext​()
        このJTextAreaに関連付けられたAccessibleContextを取得します。 JTextAreaの場合、AccessibleContextはAccessibleJTextAreaの形式を取ります。 必要に応じて新しいAccessibleJTextAreaインスタンスを作成します。
        定義:
        getAccessibleContext 、インタフェース: Accessible
        オーバーライド:
        getAccessibleContext 、クラス:  JTextComponent
        戻り値:
        このJTextAreaのAccessibleContextとして機能するAccessibleJTextArea