複数行テキスト


テキストエリア

複数行のプレーンテキストは、テキストエリアに入力することができます
テキストエリアは javax.swing.JTextArea クラスを利用します
java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.text.JTextComponent
                          |
                          +--javax.swing.JTextArea

public class JTextArea extends JTextComponent
このクラスは次のようなコンストラクタを公開しています

public JTextArea()
public JTextArea(String text)
public JTextArea(int rows , int columns)
public JTextArea(String text , int rows , int columns)
public JTextArea(Document doc)
public JTextArea(Document doc , String text , int rows , int columns)

text にはデフォルトで表示するテキスト用の文字列を
rows はテキストコンポーネントの推奨高さを決定するための行数を
columns は推奨は場を決定する列数を指定します

doc には、このテキストコンポーネントのドキュメントを指定します
行数や列数は、文字単位の大きさとなります

JTextField 同様に JTextArea.setFont() でフォントを変更することができます
また JTextArea.setRows() メソッドで行数を
JTextArea.setColumns() メソッドで列数を設定することができます
行数と列数には、取得用の getRows() と getColumns() が提供されています

public void setFont(Font f)
public void setRows(int rows)
public void setColumns(int columns)
public int getRows()
public int getColumns()

f には新しく設定するフォントを
rows には行数、columns には列数を指定します
import java.awt.*;
import javax.swing.*;

public class Test extends JApplet  {
	public void init() {
		JTextArea text = new JTextArea();
		text.setFont(new Font("Serif" , Font.PLAIN , 20));
		getContentPane().add(new JScrollPane(text));
	}
}


このプログラムは、テキストエリアを作成し、アプレットにこれを表示しています
入力された文字列は JTextComponent.getText() などで取得することができます
これらの機能を使えば、簡易メモ帳などを作成することができるでしょう

デフォルトでは、テキストエリアは折り返しを行いません
コンポーネントのサイズ以上に列が存在する場合は、さらに列を追加します
このプログラムでは、スクロールペインにコンポーネントを追加しているため
表示できる行や列以上の文字列が入力された場合、スクロールバーを表示します

折り返しは JTextArea.setLineWrap() メソッドで設定し
JTextArea.getLineWrap() メソッドで取得することができます

public void setLineWrap(boolean wrap)
public boolean getLineWrap()

wrap には折り返しをする場合は true を指定します
import java.awt.*;
import javax.swing.*;

public class Test extends JApplet  {
	public void init() {
		JTextArea text = new JTextArea();
		text.setLineWrap(true);
		getContentPane().add(new JScrollPane(text));
	}
}
このプログラムは、折り返しを行うテキストエリアを作成しています
表示可能な列数以上の文字列が入力された場合は、スクロールバーを表示せずに
次の行に文字列を折り返して表示します



前のページへ戻る次のページへ