テキストフィールドに入力し、四則演算ボタンを押すと答えた表示されるように作ったのですが、答えが表示されません。どなたかご教授ください。お願いいたします。
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件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
ざっと見ただけですが、次のような処理になっていることが原因です。
1ボタンのインスタンス作成
2ボタンにリスナー登録
3ボタンのインスタンス再作成(この時点で先ほどのリスナー登録が無意味になる)
この回答への補足
無事答えが表示されるようになりました。有難うございます。ただ、除算で2番目のテキストフィールドにゼロが入った場合に答えが表示されませんでした。
補足日時:2011/05/22 20:37No.2
- 回答日時:
分母が0の割り算は計算できません。
そのような時には例外が発生します。
割算の時に例外が発生し、以降の処理が実行されません。
例外をキャッチするか、計算の前に分母が0かチェックしておくといいでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java 配列<選挙> 4 2023/07/31 15:07
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
変数名の付け方
-
VB.NET getとsetの概念がわかり...
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
抽象クラスのインスタンス生成...
-
オブジェクト参照がオブジェク...
-
他のファイルの変数参照
-
クラス型がインスタンス化され...
-
エクセル(複数インスタンス)...
-
C#において、同じインスタンス...
-
VB6.0のクラスで、自分自身のイ...
-
マルチスレッドでのインスタン...
-
文字列を日付に変換でParseExce...
-
String型もしくはint型をIntege...
-
VC#での24ビットbmp形式での保...
-
newしないインスタンス?実体化...
-
生成したインスタンスを削除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報