ボタンのクリックで計算する

ボタンをクリックすると「1+2+3+...n」を計算する AppBeans です。

前田稔の超初心者のプログラム入門

プログラムの作成

  1. ボタンをクリックすると「1+2+3+...n」を計算する Java Beans のサンプルプログラムです。
    package keisanBean; を使うので、例えば次のようにファイルを配置して下さい。
    +がフォルダーで、・がソースファイルで、*がコンパイラなどで作成するファイルです。
    +TMP
        +keisanBean
            ・KeisanAppBean.java
            *KeisanAppBean.class
        ・Main.java
        *Main.class
        ・Main.htm
        ・dummy.java      //CPad を起動するダミーファイル
    
  2. Java Beans のソース KeisanAppBean.java です。
    Beans では Panel を継承するのが無難なようです。
    このプログラムの原型は 元のソース に掲載されていた物です。
    package keisanBean;
    
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class KeisanAppBean extends Panel
        implements ActionListener,Serializable {
    
        TextField TF1,TF2;
        Button MyB;
    
        private int Request = 0;
        private int Answer = 0;
    
        public KeisanAppBean (){
            setLayout (null);
            TF1 = new TextField ("100");
            add (TF1);
            TF1.setBounds (new Rectangle (10,10,70,20));
            TF2 = new TextField ("100");
            add (TF2);
            TF2.setBounds (new Rectangle (10,40,70,20));
            MyB = new Button ("Click!");
            MyB.addActionListener (this);
            add (MyB);
            MyB.setBounds (new Rectangle (90,10,50,50));
            setBounds (new Rectangle (150,70));
        }
    
        public void actionPerformed (ActionEvent e) {
            String str1;
            int num1,total;
            str1 = TF1.getText ();
            num1 = Integer.parseInt (str1);
            total = 0;
            for (int i=1;i<=num1;i++){
                total = total + i;
            }
            str1 = Integer.toString (total);
            TF2.setText (str1);
        }
    
        public int getRequest () {
            return Request;
        }
        public void setRequest (int num) {
            Request = num;
            TF1.setText (Integer.toString (num));
        }
        public int getAnswer () {
            return Answer;
        }
        public void setAnswer (int num) {
            Answer = num;
            TF2.setText (Integer.toString (num));
        }
    }
    
  3. KeisanAppBean() を呼び出す Main.java です。
    bean= new keisanBean.KeisanAppBean() でインスタンス化してウインドウに貼り付けます。
    //★ Beans Keisan    前田 稔
    //   appletviewer Main.htm
    import java.applet.Applet;
    import java.awt.*;
    
    public class Main extends Applet
    {   keisanBean.KeisanAppBean    bean;
    
        public void init()
        {   bean= new keisanBean.KeisanAppBean();
            add(bean,BorderLayout.CENTER);
            setVisible(true);
        }
    }
    
  4. Main.class を呼び出す Main.htm です。
    <html>
      <body>
        <h3>1+2+3+...n の計算</h3>
        <applet code="Main" width="200" height="100">
        </applet>
      </body>
    </html>
    
  5. CPad を起動する Dummy.java です。
    Command Prompt から操作するときは、必要ありません。
    //★ CPad を起動するダミーです    前田 稔
    //   javac keisanBean\KeisanAppBean.java
    public class dummy
    {
        public static void main( String args[] )
        {
            System.out.println("Hello World!");
        }
    }
    
  6. KeisanAppBean.java をコンパイルして KeisanAppBean.class を作成して下さい。
    dummy.java をダブルクリックして CPad を起動すると操作が簡単になります。
    コンパイルの方法は Java Applet で Beans を使う を参照して下さい。

  7. Main.java をコンパイルして Main.class を作成します。
    CPad の「ファイル/ファイルを開く」から Main.java を開いて下さい。
    青色の右三角アイコンをクリックします。
  8. CPad のコマンドボックスに appletviewer Main.htm をコピー&ペーストして実行を確認します。
    上のボックスに数値をタイプして、Click! ボタンをクリックすると、計算結果が表示されます。
  9. 最終確認は WWWブラウザから Main.htm を立ち上げて下さい。
    セキュリティの警告が表示されたら解除して下さい。
    Main.htm⇒Main.class⇒KeisanAppBean.class

【NOTE】

Java Beans が継承する FORM(Panel, Container, Component)の考察です。

Java Beans を使うのは Applet に限りません。
Java では継承できる Class が多く「まだあるのか」と思うほど複雑怪奇です。 (^_^;)
そこで、幾通りか試して無難なものを選んでみました。
extends java.awt.Panel
extends java.awt.Container
extends java.awt.Component
extends javax.swing.JPanel
extends java.applet.Applet
extends java.awt.Frame
extends javax.swing.JFrame

Frame, JFrame は、タイトルとボーダを持つトップレベルウィンドウなので、候補から外します。
Applet を継承すると、後で説明する BDK を使ったときに「実行時にエラーメッセージ」が表示されます。
BDK のサンプルは Component や Panel を継承するものが多いようです。
Applet は Penel のサブクラスでもあり、Panel を継承するのが無難なようです。
Swing を使うときは JPanel を継承して下さい。
AWT と Swing ではツールの名前が違うので混同しないように注意して下さい。

超初心者のプログラム入門(Java2)