GUIサンプル(テキストフィールド)

Javaアプレットでテキストフィールドを表示するサンプルです。

Home > サンプル集 > アプレットサンプル集 > テキストフィールドのサンプル


テキストフィールドのサンプル

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. テキストフィールドを使うには ( TextFieldSample01.java )  
  2. テキストフィールドの背景色を変えるには ( TextFieldSample02.java )  
  3. テキストフィールドの文字色を変えるには ( TextFieldSample03.java )  
  4. テキストフィールドに文字列を設定するには ( TextFieldSample04.java )  
  5. テキストフィールドのフォーカス時に処理を行うには  

■テキストフィールドを使うには

[ サンプルプログラムのソースコード - TextFieldSample01.java - ]
  1. import java.awt.BorderLayout;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.image.BufferedImage;
  9. import javax.swing.JApplet;
  10. import javax.swing.JTextField;
  11. // テキストフィールドに入力された時に実行する処理を記述するクラスに
  12. // ActionListenerをimplementsします。
  13. public class TextFieldSample01 extends JApplet implements ActionListener {
  14.   private static final long serialVersionUID = 1L;
  15.   JTextField textField = new JTextField();
  16.   Canvas canvas;
  17.   BufferedImage bi;
  18.   Graphics2D offs;
  19.   int w, h;
  20.   public void init() {
  21.     w = getWidth();
  22.     h = getHeight();
  23.     bi = new BufferedImage(w, h-textField.getHeight(), BufferedImage.TYPE_INT_ARGB);
  24.     offs = (Graphics2D) bi.getGraphics();
  25.     offs.setBackground(Color.WHITE);
  26.     offs.clearRect(0,0,bi.getWidth(),bi.getHeight());
  27.     canvas = new Canvas(){
  28.       private static final long serialVersionUID = 1L;
  29.       public void paint(Graphics g) {
  30.         g.drawImage(bi, 0, 0, null);
  31.       }
  32.     };
  33.     setLayout(new BorderLayout());
  34.     // テキストフィールドのアクションリスナーへの登録
  35.     textField.addActionListener(this);
  36.     add(canvas, BorderLayout.CENTER);
  37.     // テキストフィールドのアプレットコンテナーへの追加
  38.     add(textField, BorderLayout.SOUTH);
  39.   }
  40.   public void start() {
  41.     offs.setColor(Color.BLUE);
  42.     offs.drawString("まだ何も入力してないよ", 10, 10);
  43.   }
  44.   // テキストフィールドに入力された時実行する処理
  45.   public void actionPerformed(ActionEvent event) {
  46.     System.out.println("actionPerformed:"+event);
  47.     if (event.getSource() == textField) {
  48.       String inputString = textField.getText();
  49.       offs.clearRect(0, 0, w, h - 35 );
  50.       offs.setColor(Color.RED);
  51.       offs.drawString(inputString + "が入力されたよ", 10, 10);
  52.       canvas.repaint();
  53.     }
  54.   }
  55. }
[ サンプルプログラムの実行 ]
サンプルプログラムを実行してみる場合は、下のボタンをクリックしてください。
テキストフィールドに文字を入力してリターンキーを押すと画面上に入力した文字列を表示します。
※サンプルプログラムは、別ウィンドウで実行されます。実行には時間がかかることがありますのでご注意ください。


[ サンプルプログラムの解説 ]
テキストフィールドを使うには、まずテキストフィールドが入力された時に行う処理を記述するクラスにアクションリスナーをインプリメント(15行目)します。 そして41行目のaddActionListenerでアクションリスナーをインプリメントしたクラスをアクションリスナーに登録しています。 このサンプルでは、アプレットクラス自身にActionListnerをインプリメントしていますのでaddActionListenerへの引数としてthisを渡しています。 テキストフィールドの生成と設定が終わったらアプレットにテキストフィールドのオブジェクトを追加します。(46行目) テキストフィールドのイベント処理は、ActionListenerを実装したクラスのactionPerformedメソッド内に記述します。(56〜65行目) サンプルでは、テキストフィールドに入力された文字列を画面上に表示しています。



■テキストフィールドの背景色を変えるには

[ サンプルプログラムのソースコード - TextFieldSample02.java - ]
  1. import java.awt.BorderLayout;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.image.BufferedImage;
  9. import javax.swing.JApplet;
  10. import javax.swing.JTextField;
  11. public class TextFieldSample02 extends JApplet implements ActionListener {
  12.   private static final long serialVersionUID = 1L;
  13.   JTextField textField = new JTextField();
  14.   Canvas canvas;
  15.   BufferedImage bi;
  16.   Graphics2D offs;
  17.   int w, h;
  18.   public void init() {
  19.     w = getWidth();
  20.     h = getHeight();
  21.     bi = new BufferedImage(w, h-textField.getHeight(), BufferedImage.TYPE_INT_ARGB);
  22.     offs = (Graphics2D) bi.getGraphics();
  23.     offs.setBackground(Color.WHITE);
  24.     offs.clearRect(0,0,bi.getWidth(),bi.getHeight());
  25.     canvas = new Canvas(){
  26.       private static final long serialVersionUID = 1L;
  27.       public void paint(Graphics g) {
  28.         g.drawImage(bi, 0, 0, null);
  29.       }
  30.     };
  31.     setLayout(new BorderLayout());
  32.     // テキストフィールドのアクションリスナーへの登録
  33.     textField.addActionListener(this);
  34.     // テキストフィールドの背景色設定
  35.     textField.setBackground(Color.PINK);
  36.     add(canvas, BorderLayout.CENTER);
  37.     // テキストフィールドのアプレットコンテナーへの追加
  38.     add(textField, BorderLayout.SOUTH);
  39.   }
  40.   public void start() {
  41.     offs.setColor(Color.BLUE);
  42.     offs.drawString("まだ何も入力してないよ", 10, 10);
  43.   }
  44.   // テキストフィールドに入力された時実行する処理
  45.   public void actionPerformed(ActionEvent event) {
  46.     System.out.println("actionPerformed:"+event);
  47.     if (event.getSource() == textField) {
  48.       String inputString = textField.getText();
  49.       offs.clearRect(0, 0, w, h - 35 );
  50.       offs.setColor(Color.RED);
  51.       offs.drawString(inputString + "が入力されたよ", 10, 10);
  52.       canvas.repaint();
  53.     }
  54.   }
  55. }
[ サンプルプログラムの実行結果 ]
「テキストフィールドの背景色を変えるには」サンプル(TextFieldSample02.java)の実行結果画像

[ サンプルプログラムの解説 ]
テキストフィールドの背景色を変えるには、サンプルプログラムの42行目のようにJTextField#setBackground(Color color) を使います。 setBackgroundの引数に変えたい色のColorオブジェクトを渡してあげれば、テキストフィールドの背景色が指定した色に変更されます。 サンプルでは、ピンク色に変更しています。



■テキストフィールドの文字色を変えるには

[ サンプルプログラムのソースコード - TextFieldSample03.java - ]
  1. import java.awt.BorderLayout;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.image.BufferedImage;
  9. import javax.swing.JApplet;
  10. import javax.swing.JTextField;
  11. public class TextFieldSample03 extends JApplet implements ActionListener {
  12.   private static final long serialVersionUID = 1L;
  13.   JTextField textField = new JTextField();
  14.   Canvas canvas;
  15.   BufferedImage bi;
  16.   Graphics2D offs;
  17.   boolean inputFlag = true;
  18.   int w, h;
  19.   public void init() {
  20.     w = getWidth();
  21.     h = getHeight();
  22.     bi = new BufferedImage(w, h-textField.getHeight(), BufferedImage.TYPE_INT_ARGB);
  23.     offs = (Graphics2D) bi.getGraphics();
  24.     offs.setBackground(Color.WHITE);
  25.     offs.clearRect(0,0,bi.getWidth(),bi.getHeight());
  26.     canvas = new Canvas(){
  27.       private static final long serialVersionUID = 1L;
  28.       public void paint(Graphics g) {
  29.         g.drawImage(bi, 0, 0, null);
  30.       }
  31.     };
  32.     setLayout(new BorderLayout());
  33.     // テキストフィールドのアクションリスナーへの登録
  34.     textField.addActionListener(this);
  35.     // テキストフィールドの文字色設定
  36.     textField.setForeground(Color.GREEN);
  37.     add(canvas, BorderLayout.CENTER);
  38.     // テキストフィールドのアプレットコンテナーへの追加
  39.     add(textField, BorderLayout.SOUTH);
  40.   }
  41.   public void start() {
  42.     offs.setColor(Color.BLUE);
  43.     offs.drawString("まだ何も入力してないよ", 10, 10);
  44.   }
  45.   // テキストフィールドに入力された時実行する処理
  46.   public void actionPerformed(ActionEvent event) {
  47.     System.out.println("actionPerformed:"+event);
  48.     if (event.getSource() == textField) {
  49.       String inputString = textField.getText();
  50.       offs.clearRect(0, 0, w, h - 35 );
  51.       offs.setColor(Color.RED);
  52.       offs.drawString(inputString + "が入力されたよ", 10, 10);
  53.       canvas.repaint();
  54.     }
  55.   }
  56. }
[ サンプルプログラムの実行結果 ]
「テキストフィールドの文字色を変えるには」サンプル(TextFieldSample03.java)の実行結果画像

[ サンプルプログラムの解説 ]
テキストフィールドの文字色を変えるには、サンプルプログラムの43行目のようにJTextField#setForeground(Color color) を使います。 setForegroundの引数に変えたい色のColorオブジェクトを渡してあげれば、テキストフィールドの文字色が指定した色に変更されます。 サンプルでは、緑色に変更しています。



■テキストフィールドに文字列を設定するには

[ サンプルプログラムのソースコード - TextFieldSample04.java - ]
  1. import java.awt.BorderLayout;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.image.BufferedImage;
  9. import javax.swing.JApplet;
  10. import javax.swing.JTextField;
  11. public class TextFieldSample04 extends JApplet implements ActionListener {
  12.   private static final long serialVersionUID = 1L;
  13.   JTextField textField = new JTextField();
  14.   Canvas canvas;
  15.   BufferedImage bi;
  16.   Graphics2D offs;
  17.   boolean inputFlag = true;
  18.   int w, h;
  19.   public void init() {
  20.     w = getWidth();
  21.     h = getHeight();
  22.     bi = new BufferedImage(w, h-textField.getHeight(), BufferedImage.TYPE_INT_ARGB);
  23.     offs = (Graphics2D) bi.getGraphics();
  24.     offs.setBackground(Color.WHITE);
  25.     offs.clearRect(0,0,bi.getWidth(),bi.getHeight());
  26.     canvas = new Canvas(){
  27.       private static final long serialVersionUID = 1L;
  28.       public void paint(Graphics g) {
  29.         g.drawImage(bi, 0, 0, null);
  30.       }
  31.     };
  32.     setLayout(new BorderLayout());
  33.     textField.addActionListener(this);
  34.     textField.setText("文字列の設定");
  35.     add(canvas, BorderLayout.CENTER);
  36.     add(textField, BorderLayout.SOUTH);
  37.   }
  38.   
  39.   public void start() {
  40.     offs.setColor(Color.BLUE);
  41.     offs.drawString("まだ何も入力してないよ", 10, 10);
  42.   }
  43.   public void actionPerformed(ActionEvent event) {
  44.     System.out.println("actionPerformed:"+event);
  45.     if (event.getSource() == textField) {
  46.       String inputString = textField.getText();
  47.       offs.clearRect(0, 0, w, h - 35 );
  48.       offs.setColor(Color.RED);
  49.       offs.drawString(inputString + "が入力されたよ", 10, 10);
  50.       canvas.repaint();
  51.     }
  52.   }
  53. }
[ サンプルプログラムの実行 ]
サンプルプログラムを実行してみる場合は、下のボタンをクリックしてください。
テキストフィールド以外をクリックするとテキストフィールドに「ここに何か入力してください」と表示されます。 この状態でテキストフィールド内をクリックするとテキストフィールドの内容がクリアされます。
※サンプルプログラムは、別ウィンドウで実行されます。実行には時間がかかることがありますのでご注意ください。


[ サンプルプログラムの解説 ]
テキストフィールドに文字を設定するには、サンプルプログラムの39行目のようにJTextField#setText(String str) を使います。 setTextの引数に設定した文字列を渡してあげれば、テキストフィールドに指定した文字列が設定されます。



■テキストフィールドのフォーカス時に処理を行うには

[ サンプルプログラムのソースコード - TextFieldSample05.java - ]
  1. import java.awt.BorderLayout;
  2. import java.awt.Canvas;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.ActionListener;
  8. import java.awt.event.FocusEvent;
  9. import java.awt.event.FocusListener;
  10. import java.awt.image.BufferedImage;
  11. import javax.swing.JApplet;
  12. import javax.swing.JTextField;
  13. public class TextFieldSample05 extends JApplet implements ActionListener, FocusListener {
  14.   private static final long serialVersionUID = 1L;
  15.   JTextField textField = new JTextField();
  16.   Canvas canvas;
  17.   BufferedImage bi;
  18.   Graphics2D offs;
  19.   boolean inputFlag = true;
  20.   int w, h;
  21.   final String INIT_STR = "ここに何か入力してください。";
  22.   public void init() {
  23.     w = getWidth();
  24.     h = getHeight();
  25.     bi = new BufferedImage(w, h-textField.getHeight(), BufferedImage.TYPE_INT_ARGB);
  26.     offs = (Graphics2D) bi.getGraphics();
  27.     offs.setBackground(Color.WHITE);
  28.     offs.clearRect(0,0,bi.getWidth(),bi.getHeight());
  29.     canvas = new Canvas(){
  30.       private static final long serialVersionUID = 1L;
  31.       public void paint(Graphics g) {
  32.         g.drawImage(bi, 0, 0, null);
  33.       }
  34.     };
  35.     setLayout(new BorderLayout());
  36.     textField.addActionListener(this);
  37.     textField.addFocusListener(this);
  38.     textField.setForeground(Color.GRAY);
  39.     textField.setText(INIT_STR);
  40.     add(canvas, BorderLayout.CENTER);
  41.     add(textField, BorderLayout.SOUTH);
  42.   }
  43.   
  44.   public void start() {
  45.     offs.setColor(Color.BLUE);
  46.     offs.drawString("まだ何も入力してないよ", 10, 10);
  47.   }
  48.   public void actionPerformed(ActionEvent event) {
  49.     System.out.println("actionPerformed:"+event);
  50.     if (event.getSource() == textField) {
  51.       String inputString = textField.getText();
  52.       offs.clearRect(0, 0, w, h - 35 );
  53.       offs.setColor(Color.RED);
  54.       offs.drawString(inputString + "が入力されたよ", 10, 10);
  55.       canvas.repaint();
  56.     }
  57.   }
  58.   // テキストフィールドにフォーカスが移ったときに実行する処理
  59.   public void focusGained(FocusEvent event) {
  60.     if ( event.getSource() == textField ) {
  61.       if (INIT_STR.equals(textField.getText()) ) {
  62.         textField.setText("");
  63.         textField.setForeground(Color.BLACK);
  64.       }
  65.     }
  66.   }
  67.   // テキストフィールドからフォーカスが離れたときに実行する処理
  68.   public void focusLost(FocusEvent event) {
  69.     if ( event.getSource() == textField ) {
  70.       if (textField.getText().isEmpty() ) {
  71.         textField.setForeground(Color.GRAY);
  72.         textField.setText(INIT_STR);
  73.       }
  74.     }
  75.   }
  76. }
[ サンプルプログラムの実行 ]
サンプルプログラムを実行してみる場合は、下のボタンをクリックしてください。
テキストフィールド以外をクリックするとテキストフィールドに「ここに何か入力してください」と表示されます。 この状態でテキストフィールド内をクリックするとテキストフィールドの内容がクリアされます。
※サンプルプログラムは、別ウィンドウで実行されます。実行には時間がかかることがありますのでご注意ください。


[ サンプルプログラムの解説 ]
テキストフィールドのフォーカス時に処理を行うには、まずテキストフィールドにフォーカスが移った時、または、フォーカスが離れた時に 行う処理を実装するクラスにFocusListenerをimplementsします。サンプルでは、アプレットクラス自身にFocusLisnerをimplementsしています(15行目)。 FocusLisnerをimplementsしたクラスにfocusGainedメソッドとfocusLostメソッドを記述します。focusGainedメソッドには、 テキストフィールドにフォーカスが移ったときの処理、focusLostメソッドには、テキストフィールドからフォーカスがはずれたときの 処理を記述します。サンプルでは、テキストフィールドにフォーカスが移ったときにテキストフィールドの内容を空にして文字色を 黒色に設定しています。テキストフィールドからフォーカスがはずれたときに文字色をグレーに設定してテキストフィールド内に「ここに何か入力してください。」 という文字列を設定しています。






最終更新日:2019/02/13

2015-03-01からの訪問者数
  1264 人