複数行テキスト
テキストエリア
複数行のプレーンテキストは、テキストエリアに入力することができます
テキストエリアは 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));
}
}
このプログラムは、折り返しを行うテキストエリアを作成しています
表示可能な列数以上の文字列が入力された場合は、スクロールバーを表示せずに
次の行に文字列を折り返して表示します