appletviewerに、ボックスの中に整数を好きなだけ入力し、個数、合計、平均値を以下のように表示させるようなプログラムを作りたいです。(1,2,3を入力した場合)
データ□ (入力)
(計算)
個数=3
合計=6
平均値=2
※□はボックスです。(入力)(計算)はクリックするボタンです。
どなたかご指導やアドバイスをお願いいたします。まだまだ初心者でとても困っています。。
ちなみに途中まで考えたのが以下のプログラムです。
import java.applet.*;
import java.awt.Button;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.*;
public class Lec1106 extends Applet implements ActionListener
{
private TextField box1 = new TextField(5);
private Label moji1 = new Label("データ");
private Label moji2 = new Label("個数=");
private Label moji3 = new Label("合計=");
private Label moji4 = new Label("平均値=");
private Button nyuuryoku = new Button("入力");
private Button keisan = new Button("計算");
public void init()
{
resize(320,240);
add(moji1);
add(box1);
add(nyuuryoku);
nyuuryoku.addActionListener(this);
add(keisan);
keisan.addActionListener(this);
add(moji2);
add(moji3);
add(moji4);
}
public void actionPerformed(ActionEvent e)
{int i;
String t1=box1.getText();
i=Integer.parseInt(t1);
No.2ベストアンサー
- 回答日時:
1)このプログラムだと、どっちのボタンを押してもactionPerformed()をそのまま実行してしまうから、ButtonにsetActionCommand()でコマンド文字列を設定しておき、e.getActionCommand()で、どのボタンを押したかを判定して、処理を切り分けたらいいのではないでしょうか。
http://java.sun.com/docs/books/tutorial/uiswing/ …
↑こちらのサンプルを読んでみてください。
2)数値を入れて、いちいち「入力」ボタンを押さないと入力されないのは使い勝手が悪そうなので、TextFieldもEnterキーを押すとボタンと同じようにActionEventを発火しますから、これを利用するとガンガン数を入力できて、面白くなりそう(?)ですよね。
具体的には、
a.「入力」「計算」ボタンを廃止して、「クリア」ボタンのみにする。
b.「クリア」ボタンとbox1のActionEventの受け取り先として、thisを登録する。
c.actionPerformed()で、「クリア」ボタンを押されて来たのなら合計、数値の個数をクリア、それ以外ならテキストフィールドでEnterキーが押されたと言うことで、数値入力処理&TextFieldの内容クリアをする。
AWTでなく、Swingを使う(JApplet,JTextFieldなど)ようにすれば、JTextFieldでsetActionCommand()が使えて、上記cでの判定も確実に行えるのでそっちがいいのかな?と思います。
以上、実際に動かしていないので、完全にこの通り動くかはわかりませんが、アイデアは参考になると思います。
No.1
- 回答日時:
一遍にやろうとせずに段階を追って作り込みましょう。
そのうえで、解らないところを絞って質問して下さい。
段階例
v0.1 actionPerformedは空でいいので、とりあえずコンパイル出来ることを確認し、
アプレット画面がちゃんと表示されることを確認する
v0.2 ボタンをクリックしたら、どのボタンかをチェックしてラベルの表示を変更するようにactionPerformedを記述。
v0.3 actionPerformedを改良し、textfieldに入っている文字をチェックして、ラベルに反映させる。
これまでの入力値を表示するためのラベルもあった方がよさそう。
v0.4 入力個数(回数)、合計、平均を保持する変数を作る
(privateでよい)
actionPerformedを改良しv0.3での結果を元にこれらの変数にデータを入れる
v0.5 変数の変更をラベルに反映させる。
v0.6 バグ取り完了すれば、リリースってとこか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java junit list同士の比較方法
-
setPrefferedSizeとsetSize
-
JTable の 列幅を個別に設定す...
-
KeyListenerの使い方について
-
java JFreeChartについての質問...
-
JPanelの切り替えと再描画
-
C言語のポインターに関する警告
-
VBAで配列の計算
-
ORA-01858: 数値を指定する箇所...
-
パソコンキーボードで時分秒を...
-
Path型をString型へ変換する(Java)
-
C#で、あるクラスのメンバーす...
-
[JAVA]try 内の変数を外で!?
-
Javaで改行などが出来ないのです。
-
System.err. printlnとSystem.o...
-
1~100までの数字を表示したい
-
1~100までの数字を表示し、か...
-
BOOL値を逆にしたい
-
ダブルクォーテーションのrepla...
-
IF関数でEmpty値を設定する方法。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
JPanelの切り替えと再描画
-
javaで文字数制限するには?
-
TextAreaでの文字の色
-
Java JPanelを使ったコードにつ...
-
java 一意の値を取り出す方法
-
JPanelの重ね方/OverlayLayout他
-
Java-Swing TextAreaにスクロー...
-
JDialogを閉じた時の処理
-
4択クイズでのランダム出題の...
-
【Swing】JPanel クラス外から...
-
最後の行に移動するには?
-
エラーで式の開始が不正ですと...
-
’じゃんけん’をするプログラム...
-
JTable の 列幅を個別に設定す...
-
ArrayListの使い方について(初...
-
次のように書いたのですが、ウ...
-
TABキーの検出
-
JTableの列ヘッダ
-
c言語のプログラミングで1から1...
おすすめ情報