初期値の設定

広告

テキストエリアはユーザーが文字を入力してもらうために使用しますが、入力される値の初期値を設定しておくことが可能です。ここでは初期値の設定方法を確認します。

コンストラクタで設定

JTextAreaクラスのコンストラクタの中には初期値を設定することができるものが含まれています。

指定された表示テキストで新しい TextArea を構築します。デフォルトモデルが作成され、行/列数
は 0 に設定されます。

パラメータ:
  text - 表示されるテキストまたは null

引数には文字列を表すStringクラスのオブジェクトを指定します。もしも複数行に渡る文字列を初期値として指定したい場合には「¥n」を改行文字として指定して下さい。

ご利用の環境に関係なく改行は「¥n」を使って下さい。

このコンストラクタを使用した場合、作成したテキストエリアには引数に指定した文字列が初期値として表示されます。またテキストエリアの行数と幅は、初期値として指定した文字列がぴったり表示されるサイズに自動的に設定されます。

初期値の設定に加えて行数と幅を指定するには次のコンストラクタを使用します。

指定されたテキストと行数と列数で新しい TextArea を構築します。デフォルトモデルが作成されま
す。

パラメータ:
  text - 表示されるテキストまたは null
  rows - 行数 >= 0
  columns - 列数 >= 0 
例外:
  IllegalArgumentException - 行または列の引数が負の数の場合

1番目の引数に初期値、2番目の引数に行数、3番目の引数に列数を指定して下さい。

もしも指定した行数や幅に初期値として指定した文字列が入りきらない場合は自動的に拡張されます。

実際の使い方は次のようになります。

JTextArea area1 = new JTextArea("初期値");
JTextArea area2 = new JTextArea("こんにちは。¥nおはようございます。", 5, 20);

メソッドを使って設定する

テキストエリアを作成した後でテキストエリアに表示される値を設定することが出来ます。JTextAreaクラスの親クラスであるJTextComponentクラスで用意されているsetTextメソッドを使います。

この TextComponent のテキストに、指定されたテキストを設定します。テキストが null または空の
場合は、古いテキストを単に削除する効果があります。テキストが挿入されたときに結果として得ら
れるキャレット位置は、キャレットクラスの実装によって決定されます。 

パラメータ:
  t - 設定する新しいテキスト

引数にはテキストエリアに設定する文字列を表すStringクラスのオブジェクトを指定します。setTextメソッドは任意のタイミングで実行できますので、初期値を設定するというよりはテキストエリアの値を設定するためのメソッドです。

テキストエリアのデフォルトの設定では、入力された内容が入りきらない場合は自動的に拡張されるため、テキストエリアにsetTextメソッドによって値が設定される時、テキストエリアの行数や幅に入りきらない場合は自動的に拡張されます。

実際の使い方は次のようになります。

JTextArea area = new JTextArea(3, 20);
area.setText("文字列");

サンプルプログラム

では実際に試してみます。

SSample2_1.java

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import java.awt.Container;
import java.awt.BorderLayout;

class SSample2_1 extends JFrame{
  public static void main(String args[]){
    SSample2_1 frame = new SSample2_1("タイトル");
    frame.setVisible(true);
  }

  SSample2_1(String title){
    setTitle(title);
    setBounds(100, 100, 300, 250);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel p = new JPanel();

    JTextArea area1 = new JTextArea("東京都港区赤坂");
    JTextArea area2 = new JTextArea("こんにちは。¥nお元気でしょうか。", 5, 20);
    JTextArea area3 = new JTextArea(3, 5);
    area3.setText("長い文章を設定すると自動的に拡張されます。");

    p.add(area1);
    p.add(area2);
    p.add(area3);

    Container contentPane = getContentPane();
    contentPane.add(p, BorderLayout.CENTER);
  }
}

ではコンパイルを行った上で実行してみます。

初期値の設定

今回は3つのテキストエリアを作成しました。1つ目のテキストエリアは初期値の文字列と同じ行数と幅に設定されています。2つ目のテキストエリアでは初期値に加えて行数と幅を設定しました。3つ目のテキストエリアは値を設定する前のテキストエリアに値が入りきらないため、幅が自動的に拡張されています。

初期値はあくまで初期値ですので後から文字列を追加したり削除して書き換えたりすることが可能です。

初期値の設定

( Written by Tatsuo Ikura )