コマンドラインでのプログラムとの違い

広告

まずはSwingを使ったプログラムとコマンドラインで動作するプログラムとの違いを確認しておきます。

コマンドラインで動作するプログラムとは、例えば次のようなプログラムです。

SSample1_1.java

class SSample1_1{
  public static void main(String args[]){
    int sum = 0;

    for (int i = 1; i <= 1000; i++){
      sum += i;
    }

    System.out.println("合計は" + sum + "です");
  }
}

このプログラムでは1から1000までを順に加算した結果を出力します。実際に実行した結果は次のようになります。

コマンドラインでのプログラムとの違い

このようにプログラムを実行すると、定められた手順を順に実行し場合によっては結果を出力した後でプログラムが終了します。つまり実行>結果出力>終了までが一連の流れとして行われます。

もちろんこのような単純なものばかりではなく、ユーザーからの入力を待って処理を実行するものもありますし、終了の指示を出すまで繰り返しプログラムを実行するものもありますが、基本的にコマンドラインでのプログラムは先ほどのサンプルのような動作をします。

Swingを使ったプログラム

SwingはGUIのアプリケーションを作成するために使用されるものです。GUIとはGraphical User Interfaceのことでフレームを持ったアプリケーションでボタンやテキストボックスなどグラフィカルな部品を使って操作を行うものです。

Swingを使ったプログラムとは、例えば次のようなプログラムです。

SSample1_2.java

import javax.swing.JFrame;

class SSample1_2{
  public static void main(String args[]){
    JFrame frame = new JFrame("タイトル");
    frame.setBounds(100, 100, 200, 160);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }
}

このプログラムではフレームを1つ作成して表示するだけのプログラムです。実際に実行した結果は次のようになります。

コマンドラインでのプログラムとの違い

プログラムを実行するとWindows画面上に次のようなアプリケーションが表示されます。

コマンドラインでのプログラムとの違い

このプログラムはフレームを画面上に表示させて終了したわけではありません。現時点でもプログラムは実行されたままです。実際プログラムを実行したコマンドプロンプトでは、まだコマンドプロンプトに制御は戻ってきていません。

利用者はWindows画面に現れたフレームに対して様々な動作を行います。例えばテキストボックスに文字を入力したり、リストから項目を選択したり、ボタンを押したりします。どんな部品をフレームに表示するのか、そして利用者が行った操作に応じて何を行うのかをSwingを使ったプログラムでは記述していくことになります。

今回のサンプルではフレームの右上にある「×」ボタンをクリックするとフレームが閉じると共にプログラムが終了します。これはそのようにプログラムをしているためです。プログラムが終了すれば、コマンドプロンプト上でも制御が戻り次の入力が行えるようになります。

コマンドラインでのプログラムとの違い

( Written by Tatsuo Ikura )