目次> 第5章> 5.3 TOPUPPREVNEXT

5.3 テキスト・フィールドへの入力

プログラムに少量のデータを与える方法として、ウィンドウ上にデータを入力する欄を 用意する方法があります。

下図の左側のようなウィンドウに対しデータを入力し「計算」ボタンを押すと、 計算結果を右側のように表示するプログラムを作成しましょう。

      →     →  

【レイアウトの設計】

page-5-3d.gif    migiya   page-5-3e.gif

【処理の手順】

  1. テキスト・フィールドの名前をクラス変数として2つ用意する。(9〜10行目)
  2. 加減乗除の結果を貼り付ける右詰めのラベル(4つ)を生成し、 名前を付けておく(クラス変数を定義する)。(11〜14行目)
  3. 以下の手順を、メイン・メソッドに記述する。 (16〜64行目)
  4. フレームを生成し、「クローズ」された際の処理を指定しておく。 (18〜19行目)
  5. フレームのコンテントペインに名前をつけ、レイアウトを決めておく。 (20〜21行目)
  6. テキスト・フィールドを2つ生成し、変数に代入する。 アラインメントは、右詰めを指定する。 (23〜26行目)
  7. ボタンを用意し、ボタンが押された場合、 以下の処理をするように指定しておく。 (28〜39行目)
    1. テキスト・フィールドに入力された文字列を取り出し、
      10進数表示とみなして数値に変換し、整数として記憶する。 (31〜32行目)
    2. (和のために用意した)ラベルの表示を2数の和に設定(変更)する。 (33行目)
    3. (差の)ラベルの表示を2数の差にする。 (34行目)
    4. (積の)ラベルの表示を2数の積にする。 (35行目)
    5. (商の)ラベルの表示を、
          2つめの整数が0のときは、「商: −」という文字列に
          そうでないときは、2数の商に設定する。 (36〜37行目)
  8. 「和:」「差:」「積:」「商:」と書かれたラベルを生成し、 縦型のパネル west に順に貼り付けておく。 (41〜45行目)
  9. pane の NORTH 用のパネル north を生成し、 「計算」ボタン、 テキストフィールドを貼り付ける。(47〜50行目)
  10. pane の CENTER 用のパネル center を生成し、 表示用のラベル addarea、subarea、mularea、divarea を貼り付ける。 (52〜56行)
  11. pane の NORTH、 WEST、 CENTER にそれぞれのパネルを貼る。 (58〜60行目)
  12. フレームの大きさを、貼り付けたものにあわせる。 (62行目)
  13. フレームを見えるようにする。 (63行目)

【プログラム】

行番号つきのプログラムは こちら
ダウンロードして、コンパイルするには プログラムのソース Compute4.java

【TextField】

テキストフィールドは1行の入力をするためのものです。 複数行の入力にはテキストエリアを使います。

テキストフィールドに入力された文字列を取り出すには getText メソッドを使います。 getText メソッドは 親クラス JTextComponent から継承されています。
上記の例では、ボタンが押された場合に getText メソッドを使っていますが、 テキストフィールドに対して リスナActionListener を登録して、 Enter キー が入力されたら 中身の処理をするというのが標準的な使い方です。
特定の文字列を設定する場合には setText メソッドを使います。

テキストフィールド JTextField については、 Appendix A Component の JTextField に少し詳しい説明があります。


更新日:2006-04-05 TOPUPPREVNEXT