• ベストアンサー
  • すぐに回答を!

整数を好きなだけ入力し、個数、合計、平均値を表示するプログラム

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);

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数695
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2

1)このプログラムだと、どっちのボタンを押してもactionPerformed()をそのまま実行してしまうから、ButtonにsetActionCommand()でコマンド文字列を設定しておき、e.getActionCommand()で、どのボタンを押したかを判定して、処理を切り分けたらいいのではないでしょうか。 http://java.sun.com/docs/books/tutorial/uiswing/components/button.html ↑こちらのサンプルを読んでみてください。 2)数値を入れて、いちいち「入力」ボタンを押さないと入力されないのは使い勝手が悪そうなので、TextFieldもEnterキーを押すとボタンと同じようにActionEventを発火しますから、これを利用するとガンガン数を入力できて、面白くなりそう(?)ですよね。 具体的には、 a.「入力」「計算」ボタンを廃止して、「クリア」ボタンのみにする。 b.「クリア」ボタンとbox1のActionEventの受け取り先として、thisを登録する。 c.actionPerformed()で、「クリア」ボタンを押されて来たのなら合計、数値の個数をクリア、それ以外ならテキストフィールドでEnterキーが押されたと言うことで、数値入力処理&TextFieldの内容クリアをする。 AWTでなく、Swingを使う(JApplet,JTextFieldなど)ようにすれば、JTextFieldでsetActionCommand()が使えて、上記cでの判定も確実に行えるのでそっちがいいのかな?と思います。 以上、実際に動かしていないので、完全にこの通り動くかはわかりませんが、アイデアは参考になると思います。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • java applet

    import java. applet.*; import java. awt. Button; import java. awt. Label; import java. awt. TextField; import java. awt. event.*; public class 1120 extends Applet implements ActionListener { private TextField box1 = new TextField(5); private TextField box2 = new TextField(5); private TextField box3 = new TextField(5); private Label moji1 = new Label(" と "); private Label moji2 = new Label(" の和は "); private Label moji3 = new Label(" である。 "); private Button ok = new Button("OK"); public void init() { resize( 320 , 240); add( box1 ); add( moji1 ); add( box2 ); add( moji2 ); add( box3 ); add( moji3 ); add( ok ); ok.addActionListener( this ); } public void actionPerformed( ActionEvent e ) { int i=0 ,j =0 , k; String t1 = box1.getText(); String t2 = box2.getText(); i = Integer.parseInt( t1 ); j = Integer.parseInt( t2 ); k = i + j; String s = Integer.toString( k ); box3. setText( s ); } } //上記のプログラムを書いたのですが、なぜかエラーが出てしまいます。勿論、自分でも見直しましたが、その理由がわかりませんでした。知識のある方、ご回答の方お願いします。

  • 小数の2進数変換について教えてください。

    10進数を2進数に変換するプログラムを作ったのですが、 小数の2進数変換が出来ません。 小数を2進数に変換するにはどうしたらいいのでしょうか? よろしくお願いします。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class Applet1 extends Applet { TextField textField1 = new TextField(10); TextField textField2 = new TextField(10); Button displayButton1 = new Button("2進数変換"); public void init() { displayButton1 = new Button("2進数変換"); add(new Label("10進数")); add(textField1); add(textField2); add(displayButton1); displayButton1.addActionListener(new ToBinaryAction()); } class ToBinaryAction implements ActionListener{ public void actionPerformed(ActionEvent e) { int x = Integer.valueOf(textField1.getText()).intValue(); textField2.setText(Integer.toBinaryString(x)); } } }

    • ベストアンサー
    • Java
  • event処理の初期化について

    クリックすると数字が1つづ増えていく処理はできるのですが、 別ボタンをクリックすると、最初の0に戻したいのですがどのようにすればいいのでしょうか・・ 仮に、b.setText("0");として0が表示できたとしても、そのあと上の増幅ボタンを押すとそれまで増えていた数から1ずつ増えてしまいます つまり、リセットする!というようなことをしたいのですが考え方も方法もわからないのです。どなたかご回答よろしくお願いいたします import java.awt.*; import java.awt.event.*; class click_a extends Frame{ Button a1,a2; Label b; Panel c; int d=0; click_a(){ setSize(300,300); setVisible(true); a1=new Button("ボタンを押すと数字が足し算されます"); a2=new Button("初期値に戻します"); b=new Label(""+d); c=new Panel(); c.setLayout(new GridLayout(3,1)); add(c); c.add(a1); c.add(a2); c.add(b); a1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ b.setText(""+d); d++; } }); a2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ b.setText("0"); } }); } public static void main(String[] args){ new click_a(); } }

    • ベストアンサー
    • Java

その他の回答 (1)

  • 回答No.1
  • hrm_mmm
  • ベストアンサー率63% (292/459)

一遍にやろうとせずに段階を追って作り込みましょう。 そのうえで、解らないところを絞って質問して下さい。 段階例 v0.1  actionPerformedは空でいいので、とりあえずコンパイル出来ることを確認し、 アプレット画面がちゃんと表示されることを確認する v0.2  ボタンをクリックしたら、どのボタンかをチェックしてラベルの表示を変更するようにactionPerformedを記述。 v0.3  actionPerformedを改良し、textfieldに入っている文字をチェックして、ラベルに反映させる。 これまでの入力値を表示するためのラベルもあった方がよさそう。 v0.4  入力個数(回数)、合計、平均を保持する変数を作る (privateでよい)   actionPerformedを改良しv0.3での結果を元にこれらの変数にデータを入れる v0.5  変数の変更をラベルに反映させる。 v0.6  バグ取り完了すれば、リリースってとこか

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • 読み込んだ行からランダムに選ぶ

    外部テキストからBufferedReaderで読み込んだ行をStringTokenizerで * の前と後ろに分けて、 nichi ="" + st.nextToken(); ei ="" + st.nextToken(); というように取得しています。 これをsetTextメソッドで文字列として表示しているのですが、順に読み込んだ中からランダムに選ぶ場合はどうすれば良いでしょうか import java.applet.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; public class examination extends Applet implements ActionListener{ Button Check, Next; TextField jap, eng, seigo; String wrs; String nichi, ei; public void init(){ setBackground(new Color(200, 200, 200)); add(new Label("[ japanese ]")); jap = new TextField("", 30); add(jap); add(new Label("[ english ]")); eng = new TextField("", 30); add(eng); Check = new Button("正誤判定"); Check.addActionListener(this); add(Check); seigo = new TextField("", 3); add(seigo); Next = new Button("次の問題へ進む"); Next.addActionListener(this); add(Next); } public void actionPerformed(ActionEvent e){ try{ if(e.getSource() == Next){ BufferedReader wordsfile = new BufferedReader(new FileReader("D:/list.txt")); while ((wrs=wordsfile.readLine())!= null){ StringTokenizer st = new StringTokenizer(wrs," * "); nichi ="" + st.nextToken(); ei ="" + st.nextToken(); jap.setText(nichi); ← } wordsfile.close(); }(以下省略) ←の部分ですが、このままだと最後に読み込んだ行のnichiが表示されますよね? これを読み込んだ中からランダムに一行選んで表示するにはどうすれば良いでしょうか。

    • ベストアンサー
    • Java
  • java アプレット

    学校の授業でアプレットを学んでいます。 しかし・・・ 下のプログラムで、計算した結果をlabel3にはりつけたいのですが、計算結果がでてくれません・・・ボタンを押しても何もでてきません。 コマンドプロンプトで、エラーはでてきません。 お手数ですが、誰かどこがいけないのか教えて下さい。 import java.awt.*; import java.awt.event.*; public class B extends java.applet.Applet implements ActionListener { Label label3 = new Label(); Button button2 = new Button(); TextField textfield1= new TextField(10); TextField textfield2= new TextField(10); public void init() { button2.setLabel("入力したらクリック!"); button2.setBounds(new Rectangle(50, 465, 120, 20)); this.setLayout(null); label3.setBackground(Color.blue); label3.setBounds(new Rectangle(325, 80, 200, 35)); textfield1.setBounds(100, 425, 100, 25); textfield2.setBounds(150, 350, 100, 25); this.add(textfield2, null); this.add(label3, null); this.add(textfield1, null); this.add(button2, null);} public void actionPerformed(ActionEvent event) {if(event.getSource() == button2) {int diff = Integer.parseInt(textfield1.getText()) - Integer.parseInt(textfield2.getText()); String otsuri; otsuri ="お釣りは"+ diff +"円です。"; label3.setText(otsuri);} }} よろしくお願いします。

    • ベストアンサー
    • Java
  • アプレットと自作パッケージのimportについて

    以下のような、アプレットのプログラムを作ったのですが、コンパイルは通るのですが、アプレットの初期化のところで止まってしまいます。理由と解決策を教えてください。 javac dev_java\TargetApplet\*.java ← これはOK appletviewer dev_java\TargetApplet\TargetApplet.java ←init() で止まる。 (ソース一部抜粋) package dev_java.TargetApplet ; import java.applet.* ; import java.awt.* ; import java.awt.event.* ; import dev_java.Target.* ;  // 自作のpackage /* <applet code="TargetApplet" width=500 height=400> </applet> */ public class TargetApplet extends Applet implements ActionListener, TextListener{ TextField Word ; TextField Mean ; TextArea Result ; Button Search ; Button Entry ; EnglishDictionary ed ; /* 自作package dev_java.Target で宣言されているクラス*/ public void init() { Word = new TextField(20) ; Mean = new TextField(20) ; Search = new Button("Search") ; Entry = new Button("Entry") ; Result = new TextArea(20,40) ; Word.addActionListener(this) ; Word.addTextListener(this) ; Mean.addActionListener(this) ; Mean.addTextListener(this) ; Search.addActionListener(this) ; Entry.addActionListener(this) ; // EnglishDictionary ed = new EnglishDictionary("dic/Target1900.dic") ; this.add(Word) ; this.add(Mean) ; this.add(Search) ; this.add(Entry) ; this.add(Result) ; } }

    • ベストアンサー
    • Java
  • AWTのアプレットにおいてのイベント処理

    javaのAWTでアプレット作成をしているのですがイベント処理部分をどう記述したらいいか解りません。 組み込みたいイベント処理は 1、アプレット起動時に「単語<tab>数字:数字,数字:数字,.......」という形のデータが入っているファイルを読み込んで数字列が一番多い単語(ただし二字熟語&#65374;四字熟語)を多い順に9つのボタンのラベルに格納していく。(どの位置のボタンのラベルに格納するかは自由) 2、ボタンを押すと1に書いているファイルを読み込みボタンのラベルに対応した数字列を見つけそれをテキストフィールドに全て出力させる。 ヒントだけでも宜しければ教えてください。お願いします。 /*<HTML> <BODY> <APPLET CODE="Tagcloud.class" WIDTH=400 HEIGHT=350> </APPLET> </BODY> </HTML>*/ //java.appletパッケージをimport宣言 //java.awtパッケージもimport宣言 import java.applet.*; import java.awt.*; import java.awt.event.*; public class Tagcloud extends Applet implements ActionListener{ //AWTのGUIコンポーネントクラスの作成 Button bu1 = new Button(""); Button bu2 = new Button(""); Button bu3 = new Button(""); Button bu4 = new Button(""); Button bu5 = new Button(""); Button bu6 = new Button(""); Button bu7 = new Button(""); Button bu8 = new Button(""); Button bu9 = new Button(""); TextField tf=new TextField(20);//テキストフィールド public void init(){ setBackground(new Color(0,190,221)); //レイアウトを自由に変更 setLayout(null); //アプレット領域にGUIコンポーネント(部品)の追加(載せる) add(bu1); add(bu2); add(bu3); add(bu4); add(bu5); add(bu6); add(bu7); add(bu8);   add(bu9);   add(tf); //コンポーネントの配置 bu1.setBounds(50,50,80,20); bu2.setBounds(150,50,80,20); bu3.setBounds(250,50,80,20); bu4.setBounds(50,120,80,20); bu5.setBounds(150,120,80,20); bu6.setBounds(250,120,80,20); bu7.setBounds(50,190,80,20); bu8.setBounds(150,190,80,20); bu9.setBounds(250,190,80,20); tf.setBounds(50,250,250,20); //ボタンにActionListenerを登録します。 bu1.addActionListener(this); bu2.addActionListener(this); bu3.addActionListener(this); bu4.addActionListener(this); bu5.addActionListener(this); bu6.addActionListener(this); bu7.addActionListener(this); bu8.addActionListener(this); bu9.addActionListener(this); tf.addActionListener(this); } public void actionPerformed(ActionEvent e){ //ここにイベント処理をする部分を記述 } }

  • 簡単電卓をjavaプログラムで作成しました。

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

  • return;

    retrun;を取ると動作がおかしくなるんですが return;にはどういう働きがあるんでしょうか? お願いします。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; //<applet code = "a.class" width = "300" height = "300"></applet> public class a extends Applet implements ActionListener{ Dialog d; Frame f; public void init() { setLayout( new GridLayout( 1, 1 ) ); Button b = ( Button )add( new Button( "frame" ) ); b.addActionListener( this ); } public void actionPerformed( ActionEvent e ){ if( e.getActionCommand() == "frame" ){ if ( f == null ){ f = new Frame( "Kitty on your lap" ); Button fb = (Button)f.add( new Button( "Kitty " ) ); fb.addActionListener( this ); f.setSize( 200 , 200 ); f.setVisible( true ); }else if( d == null ){ f.dispose(); f = null; } return; } if( e.getActionCommand() == "OK" ) { d.dispose(); d = null; return; } d = new Dialog( f, "Kitty", true ); d.setLayout( new GridLayout( 2, 1 ) ); d.setResizable( false ); d.add( new Label( "Kitty on your lap" ) ); Button b = (Button)d.add( new Button( "OK" ) ); b.addActionListener( this ); d.setSize( 400 , 200 ); d.setVisible( true ); } }

    • ベストアンサー
    • Java
  • main()メソッドが無いコード

    最近、Javaアプレット等を勉強してるのですが 今まではmain()メソッドの中に処理を書いて来たのですが、 下記の様なコードにはmain()メソッドが有りません。 import java.applet.Applet; import java.awt.Button; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Sample6 extends Applet implements ActionListener { Button bt; public void init() { bt = new Button("開始"); add(bt); bt.addActionListener(this); } public void actionPerformed(ActionEvent ae) { bt.setLabel("中止"); } } これはどう言う事なんでしょうか?

    • ベストアンサー
    • Java
  • JAVAアプレット(簡易計算機)のプログラム

    足し算を行うだけのプログラムを組むことができたのですが、 四則演算を行いたいと考えています。 下記のようなプログラムでは、ボタンが=のボタンなのですが、 そのボタンを+,-,*,/の4つにおきかえて、各ボタンを押したときに 各ボタンの処理を行うのはどのようにすればいいのでしょうか? 分かる方、ご教授よろしくおねがいします。 import java.applet.Applet; import java.awt.*; // java.awtパッケージのインポート import java.awt.event.*; public class SampleD10L2 extends Applet { private Button btn_culc; // +ボタン private TextField txt_A, txt_B, txt_answer; // 数値入力用テキストボックス public void init() { // ボタンのインスタンスを作成 btn_culc = new Button("="); // ボタンのイベント処理を定義 btn_culc.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { // txt_Aに入力された値 + txt_Bに入力された値を計算 int intAnswer = Integer.parseInt(txt_A.getText()) + Integer.parseInt(txt_B.getText()); // 答えをtxt_answerに表示 txt_answer.setText(Integer.toString(intAnswer)); } }); // コンポーネントの初期化 txt_A = new TextField("0", 3); txt_B = new TextField("0", 3); lbl_plus = new Label(" + "); txt_answer = new TextField("0", 5); // コンポーネントを追加 this.add(txt_A); // 自分自身のaddメソッドを呼び出す(this.は省略可能) this.add(lbl_plus); this.add(txt_B); this.add(btn_culc); this.add(txt_answer); } }

    • ベストアンサー
    • Java
  • HTMLファイルを開きたい

    こんにちは、いつもお世話になっています。 質問があります。 アプレットでボタンを押すと、 HTMLファイル「c:/test_folder/test.html」 を開きたいのですが、 下記コードの(☆) のところに何を書いていいかわかりません。 どなたかご存知でしたら教えていただけないでしょうか? よろしくお願いします。 ============================================================= import javax.swing.*; import java.awt.*; import java.applet.Applet; import java.awt.event.*; import java.net.*; public class situmon extends Applet implements ActionListener { JPanel panel; JButton button; public void init() { panel=new JPanel(); button=new JButton("次へ"); button.addActionListener(this); panel.add(button); this.add(panel); } public void actionPerformed(ActionEvent e) { if(e.getSource()==button) { (☆); } } }

    • ベストアンサー
    • Java
  • 簡易電卓が作れない…

    簡易電卓を作ろうとしているのですが、どうしても分からない所があります。 とりあえずテストの為、以下のようなプログラムを作りました。 「dentaku.java」 import java.awt.*; import java.awt.event.*; class dentaku{ public static void main(String[] agrs){ Frame frame=new Frame("電卓"); frame.setSize(500,800); frame.setLayout(null); Button button0=new Button("0"); button0.setLocation(10,710); button0.setSize(80,80); Button buttonC=new Button("C"); buttonC.setLocation(100,710); buttonC.setSize(80,80); Button button1=new Button("1"); button1.setLocation(10,620); button1.setSize(80,80); Button button2=new Button("2"); button2.setLocation(100,620); button2.setSize(80,80); Button button3=new Button("3"); button3.setLocation(190,620); button3.setSize(80,80); Button button4=new Button("4"); button4.setLocation(10,530); button4.setSize(80,80); Button button5=new Button("5"); button5.setLocation(100,530); button5.setSize(80,80); Button button6=new Button("6"); button6.setLocation(190,530); button6.setSize(80,80); Button button7=new Button("7"); button7.setLocation(10,440); button7.setSize(80,80); Button button8=new Button("8"); button8.setLocation(100,440); button8.setSize(80,80); Button button9=new Button("9"); button9.setLocation(190,440); button9.setSize(80,80); Button buttonP=new Button("+"); buttonP.setLocation(280,440); buttonP.setSize(80,80); Button buttonM=new Button("-"); buttonM.setLocation(280,530); buttonM.setSize(80,80); Button buttonK=new Button("×"); buttonK.setLocation(280,620); buttonK.setSize(80,80); Button buttonW=new Button("÷"); buttonW.setLocation(280,710); buttonW.setSize(80,80); TextField nyuuryoku = new TextField(""); nyuuryoku.setLocation(10,380); nyuuryoku.setSize(350,50); TextField kekka = new TextField("0"); kekka.setLocation(10,320); kekka.setSize(350,50); button1.addActionListener(new dentaku_num(nyuuryoku)); button2.addActionListener(new dentaku_num(nyuuryoku)); frame.add(button0); frame.add(buttonC); frame.add(button1); frame.add(button2); frame.add(button3); frame.add(button4); frame.add(button5); frame.add(button6); frame.add(button7); frame.add(button8); frame.add(button9); frame.add(buttonP); frame.add(buttonM); frame.add(buttonK); frame.add(buttonW); frame.add(nyuuryoku); frame.add(kekka); frame.setVisible(true); } } 「dentaku_num.java」 import java.awt.*; import java.awt.event.*; class dentaku_num implements ActionListener{ TextField txt; int num=0; Button button1; Button button2; dentaku_num(TextField txt){ this.txt = txt; } public void actionPerformed(ActionEvent e){ if(e.getSource()== button1) {num=1;} if(e.getSource()== button2) {num=2;} txt.setText(String.valueOf(num)); } } 予想では、「1」を押したら下のテクストボックスに1が、「2」を押したら2が表示されると思いました。 しかし結果は、両方とも「0」が表示されるだけです。 不思議に思い、「if(e.getSorce)~」の2文を消してみたら、これも同じ結果でした。 どうやら、eを受け取っていない(?)ようなのですが、どの様にしたらうまく行くでしょうか。 見づらい分だとは思いますが、宜しくお願いします。

    • ベストアンサー
    • Java