アプリ版:「スタンプのみでお礼する」機能のリリースについて

テキストフィールドに入力し、四則演算ボタンを押すと答えた表示されるように作ったのですが、答えが表示されません。どなたかご教授ください。お願いいたします。

import java.applet.Applet;
import java.awt.*; // java.awtパッケージのインポート
import java.awt.event.*;

public class EasyCulc extends Applet {

Button plus, minus, multi, div; // ボタン
TextField txta, txtb, ans; // 数値入力用テキストボックス

public void init() {

plus = new Button("+");// ボタンのインスタンスを作成
plus.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
// txtaに入力された値 + txtbに入力された値を計算
int answer = Integer.parseInt(txta.getText()) + Integer.parseInt(txtb.getText());ans.setText(Integer.toString(answer));// 答えをansに表示

}
});

minus = new Button("-");// ボタンのインスタンスを作成
minus.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
// txtaに入力された値 - txtbに入力された値を計算
int intAnswer = Integer.parseInt(txta.getText()) - Integer.parseInt(txtb.getText());
ans.setText(Integer.toString(intAnswer));// 答えをansに表示

}
});


multi = new Button("x");// ボタンのインスタンスを作成
multi.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
// txtaに入力された値 x txtbに入力された値を計算
int intAnswer = Integer.parseInt(txta.getText()) * Integer.parseInt(txtb.getText());
ans.setText(Integer.toString(intAnswer));// 答えをansに表示

}
});

div = new Button("÷");// ボタンのインスタンスを作成
div.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {
// txtaに入力された値 ÷ txtbに入力された値を計算
int intAnswer = Integer.parseInt(txta.getText()) / Integer.parseInt(txtb.getText());
ans.setText(Integer.toString(intAnswer));// 答えをansに表示

}
});

// コンポーネントの初期化
txta = new TextField("", 5);
txtb = new TextField("",5 );
plus = new Button("+");
minus = new Button("-");
multi = new Button("x");
div = new Button("÷");
ans = new TextField("", 5);

// コンポーネントを追加
this.add(txta);
this.add(txtb);
this.add(plus);
this.add(minus);
this.add(multi);
this.add(div);
add(new Label("計算結果"));
this.add(ans);
}

}

A 回答 (2件)

ざっと見ただけですが、次のような処理になっていることが原因です。



1ボタンのインスタンス作成
2ボタンにリスナー登録
3ボタンのインスタンス再作成(この時点で先ほどのリスナー登録が無意味になる)

この回答への補足

無事答えが表示されるようになりました。有難うございます。ただ、除算で2番目のテキストフィールドにゼロが入った場合に答えが表示されませんでした。

補足日時:2011/05/22 20:37
    • good
    • 0

分母が0の割り算は計算できません。


そのような時には例外が発生します。

割算の時に例外が発生し、以降の処理が実行されません。

例外をキャッチするか、計算の前に分母が0かチェックしておくといいでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!