ウインドウの導入

  1. 目的

    アプレットではGUI(ボタンや文字入力ウインドウ)を利用するウインドウが利用できますが、アプリケーションではウインドウの導入が必要です。

  2. ウインドウの導入

    1. ウインドウ
      ウインドウはその中に、GUI部品やグラフィックスが表示できる画面の領域です。現在のプログラムはウインドウを利用した対話型プログラムが一般的にになっています。

    2. フレームクラスの継承
       ウインドウを利用するには、フレームクラス:Frameを継承します。継承(extends)することにより、Frame の全機能を組み込んだ形で利用できます。

      class newFrame extends Frame{  }

       フレームを組み込むとウインドウが作成され、利用できます。main() で、nf としてウインドウを作成し、nf.show(); で表示を行います。

       newFrame nf=new newFrame();
       nf.show();

    3. ウインドウのコンストラクタ
      newFrameのコンストラクタで、まず、
       super("Hello");//ウインドウのタイトルを指定
       setSize(200,150);//ウインドウのサイズを指定
      を行います。

    4. イベント処理
       ウインドウを生成すると、タイトルバーの右端にに X 印が現れ、これを押すとウインドウを消すことができます。X ボタンを押すと 「イベント」 が発生します。このイベントにより、特定の(この場合、終了処理)のプログラムを実行することが必要です。
       この機能は追加は、addWindowListener() で行い、WindowAdapter()クラスの、System.exit(0); で終了処理を実行します。(少しややこしいですが、慣用句だと考えて下さい)
         addWindowListener(new WindowAdapter() {
             public void windowClosing(WindowEvent evt) {
               System.exit(0);
              }
          });
    5. GUI部品の作成
      以下は、ウインドウに 文字入力/編集枠を作成し、hello を表示します。 GUI部品の詳細は別項目で説明します。

       textField1.setText("hello");//GUI部品の生成
       textField1.setBounds(new Rectangle(30, 50, 130, 20));
       setLayout(null);
       add(textField1, null);//部品の追加

    6. グラフィックメソッド
       paint(Graphics g) は、ウインドウが生成されると、自動的に呼び出されるメソッドです。この中で、

       g.drawString("Hello",30,100);

      でグラフィックで文字表示を行います。30,100 が表示をする座標で、詳細は別項目で説明します。

  3. プログラム

    1. プログラム

      import java.awt.*;
      import java.awt.event.*;
      
      public class gFrame extends Frame{
        //ウインドウを作成し、表示します
          public static void main(String[] args) {
              newFrame nf=new newFrame();
              nf.show();
          }
      }
      
      class newFrame extends Frame{
          private TextField textField1 = new TextField();
          
          newFrame(){
              super("Hello");//ウインドウのタイトルを指定
              setSize(200,150);//ウインドウのサイズを指定
              
              addWindowListener(new WindowAdapter() {
                  public void windowClosing(WindowEvent evt) {
                  System.exit(0);//終了イベント
                  }
              });
              
              textField1.setText("hello");//GUI部品の生成
              textField1.setBounds(new Rectangle(30, 50, 130, 20));
              setLayout(null);
              add(textField1, null);//部品の追加
      
          }
          
          public void paint(Graphics g){
              g.drawString("Hello",30,100);//グラフィック表示
          }
      }

    2. 実行結果
       次のウインドウがあらわれます。