ユーザインタフェース 10章 テキスト・コンポーネント
- 10.1. javax.swing.JTextField
- 10.2. javax.swing.JTextArea
- 10.3. javax.swing.text.Document
10.2. javax.swing.JTextArea
「JTextArea」は複数行のテキスト入力領域を提供するコンポーネントです。「JTextField」も同じですが、1種類のフォント・色でしか表示する事ができません。コンストラクタは以下のとおりです。
JTextArea() JTextArea(int rows, int cols) JTextArea(String text) JTextArea(String text, int rows, int cols) JTextArea(Document doc) JTextArea(Document doc, String text, int rows, int cols)
ほぼ「JTextField」と同じですが、列数だけでなく行数も引数として指定するのが特徴です。
文字列の追加の場合は「append」、挿入の場合は「insert」メソッドを使用します。フォントを指定する際には「setFont」メソッドを使用します。引数には「java.awt.Font」クラスのインスタンスを指定しますが、以下のように使用します。
JTextArea textArea=new JTextArea(); textArea.setFont(new Font("SansSerif",Font.PLAIN,20));
「Font」のコンストラクタの第1引数はフォント名、第2引数はスタイル、第3引数はサイズです。フォント名はシステムに組み込まれているフォント名を指定しますが、それだとJavaの「システムに依存しない」という特徴が活かされません。そこでJavaには「論理フォント」というものが組み込まれています。論理フォントは必ず存在し、実フォントのように有る無しに影響される事がありません。論理フォントには以下の6つがあります。
- Serif
- SansSerif
- Monospaced
- Dialog
- DialogInput
- Symbol
第2引数は「Font」クラスのクラス定数「BOLD」「ITALIC」「PLAIN」の中から指定します。「Font.BOLD|Font.ITALIC」とした場合には、ボールド・イタリックフォントが選択されます。
(実習課題2)
以下のプログラムを作成しなさい。
- ウィンドウに含まれるコンポーネントはテキストエリアと、そのフォントを切り替えるためのコンポーネント。
- フォント名を指定するためのリスト。論理フォントだけを対象にして良い。
- フォント・スタイルを指定するためのチェックボックス。
- フォントのサイズを入力するためのテキストフィールド。
- 「変更」ボタンを押すと、テキストエリアのフォントが切り替わる