計算プログラムを考える
今までの連載で、既にさまざまな機能の使い方について覚えてきました。入力フィールド、ボタンといった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人当たりの金額が表示されるのがわかるでしょう。また数字を入力しないでボタンを押すと、ちゃんと警告のメッセージも表示されるようになっていますね。