計算プログラムを考える


今までの連載で、既にさまざまな機能の使い方について覚えてきました。入力フィールド、ボタンといったAWTの基本的なコンポーネントの作成と組み込み方、アクションリスナーというイベントリスナーの使い方、LabelやTextFieldのテキストを取り出したり変更する方法などです。これらがわかれば、ごく簡単なアプリケーションプログラムぐらいは作れそうです。そこで今回は、今までのまとめとして「ダブルクリックして動く計算アプリケーション」を作ってみることにしましょう。

今回作るのは、「割り勘計算プログラム」です。金額と人数を入力すると、その金額を人数で割って一人当たりの支払額を表示する、というものです。ごく単純なものですが、まぁ「Javaでアプリケーションに挑戦する」ための第一歩としては適当なレベルではないでしょうか。――では、今回はさっそくソースコードを掲載しておくことにしましょう。

import java.awt.*;
import java.awt.event.*;

public class KeisanClass extends Frame{
  Label lb1,lb2,lb3;
  TextField text1,text2;
  Button btn1;

  public static void main(String[] args) {
    new KeisanClass();
  }

  public KeisanClass(){
    this.setLayout(null);
    this.setSize(300,200);
    lb1 = new Label("金額");
    lb1.setBounds(25,50,25,18);
    this.add(lb1);
    text1 = new TextField();
    text1.setBounds(75,50,75,18);
    this.add(text1);
    lb2 = new Label("人数");
    lb2.setBounds(175,50,50,18);
    this.add(lb2);
    text2 = new TextField();
    text2.setBounds(225,50,25,18);
    this.add(text2);
    lb3 = new Label();
    lb3.setBounds(25,100,200,20);
    this.add(lb3);
    btn1 = new Button("計算");
    btn1.setBounds(125,150,50,20);
    btn1.addActionListener(new ActionClass());
    this.add(btn1);
    this.addWindowListener(new ExitClass());
    this.setVisible(true);
  }
  
  class ActionClass implements ActionListener {
    public void actionPerformed(ActionEvent ev){
      try {
        String s1 = text1.getText();
        String s2 = text2.getText();
        int n1 = Integer.parseInt(s1);
        int n2 = Integer.parseInt(s2);
        int ans = n1 / n2;
        String res = Integer.toString(ans);
        lb3.setText("1人当たり:" + res + "円");
      } catch(Exception ex){
        lb3.setText("【警告】数字を入力してください。");
      }
    }
  }
  
  class ExitClass extends WindowAdapter {
    public void windowClosing(WindowEvent ev){
      System.exit(0);
    }
  }
}

金額と人数を入力しボタンを押すと、1人当たりの金額が表示されます。

今回は「KeisanClass」という名前のクラスとして作りました。したがって、ソースコードのファイル名は「KeisanClass.java」となりますね。他、前回登場した「内部クラス」というものを使って、ActionClassとExitClassという2つのクラスを用意してあります。

プログラムの内容については後で説明するとして、実際にプログラムをコンパイルし、動かしてみましょう。「金額」「人数」というところにそれぞれ数字を記入し、「計算」ボタンを押すと、1人当たりの金額が表示されるのがわかるでしょう。また数字を入力しないでボタンを押すと、ちゃんと警告のメッセージも表示されるようになっていますね。