Java Applet で Beans を使う

Java Applet で Beans を使って曜日を表示します。
Java Beans は定められたルールに従って作成された普通の Object Class です。

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

プログラムの作成

  1. Java Applet で Beans を使って曜日を表示します。
    開発用に作業用のフォルダー(仮に C:\TMP とする)を用意して下さい。
    package Bean; を使うので、例えば次のようにファイルを配置して下さい。
    +がフォルダーで、・がソースファイルで、*がコンパイラなどで作成するファイルです。
    +TMP
        +Bean
            ・TodayBean.java
            *TodayBean.class
        ・Main.java
        *Main.class
        ・Main.htm
        ・dummy.java      //CPad を起動するダミーファイル
    
  2. Java Beans のソース TodayBean.java です。
    元は apache-tomcat のサンプルプログラムです。
    //★ 日付のプロパティを持つ Bean
    package Bean;
    
    import java.util.Calendar;
    import java.util.Date;
    import java.io.Serializable;
    
    public class TodayBean implements Serializable
    {   private Calendar calendar;
    
        public TodayBean()
        {   calendar = Calendar.getInstance();
            Date d = new Date();
            calendar.setTime(d);
        }
    
        public int getYear()
        {   return calendar.get(Calendar.YEAR);  }
    
        public String getMonth()
        {   int m = calendar.get(Calendar.MONTH);
            String[] months = new String []
            {   "January", "February", "March", "April", "May",
                "June", "July", "August", "September", "October",
                "November", "December"
            };
            return months[m];
        }
    
        public int getDate()
        {   return calendar.get(Calendar.DATE);  }
    
        public int getHour()
        {   return calendar.get(Calendar.HOUR_OF_DAY);  }
        
        public int getMinute()
        {   return calendar.get(Calendar.MINUTE);  }
    
        public static void main(String args[])
        {   TodayBean today = new TodayBean();
            System.out.println("年: " + today.getYear());
            System.out.println("月: " + today.getMonth());
            System.out.println("日: " + today.getDate());
            System.out.println("時: " + today.getHour());
            System.out.println("分: " + today.getMinute());
        }
    }
    
  3. Applet を継承した Main.java です。
    //★ Today Beans のサンプルプログラム    前田 稔
    //   appletviewer Main.htm
    import java.applet.Applet;
    import java.awt.*;
    
    public class Main extends Applet
    {   Bean.TodayBean  bean;
    
        public void init()
        {   bean= new Bean.TodayBean();
        }
    
        public void paint(Graphics g)
        {   g.drawString("Today Beans のサンプル",20,40);
            g.drawString(bean.getMonth(),20,70);
        }
    }
    
  4. Main.class(java)を呼び出す Main.htm です。
    <html>
      <body>
        <h3>Today Beans</h3>
        <applet code="Main" width="200" height="100">
        </applet>
      </body>
    </html>
    
  5. CPad を起動する Dummy.java です。
    Java のプログラムを開発する環境は、Command Prompt や make や ant や Eclipse など、好みによって様々です。
    私はもっぱら CPad を愛用しています。
    Dummy.java は CPad を使わないときは、必要ありません。
    念のために、最も基本となる Command Prompt から開発する方法も説明しています。
    //★ CPad を起動するダミーです    前田 稔
    //   javac Bean\TodayBean.java
    //   appletviewer Main.htm
    public class dummy
    {
        public static void main( String args[] )
        {
            System.out.println("Hello World!");
        }
    }
    
  6. TodayBean.java をコンパイルして TodayBean.class を作成して下さい。
    dummy.java をダブルクリックして CPad を起動すると操作が簡単になります。
    javac Bean\TodayBean.java をコマンドボックスにコピー&ペーストしてコンパイルします。

    Command Prompt でコンパイルするときは C:\TMP をカレントディレクトリにして操作して下さい。
    C:\users>CD C:\TMP
    C:\TMP>javac Bean\TodayBean.java
  7. Main.java をコンパイルして Main.class を作成します。
    CPad の「ファイル/ファイルを開く」または、ダブルクリックで Main.java を開いて下さい。
    青色の右三角アイコンをクリックします。
    Command Prompt から実行するときです。
    C:\users>CD C:\TMP
    C:\TMP>javac Main.java
  8. appletviewer で実行を確認します。
    CPad のコマンドボックスに appletviewer Main.htm をコピー&ペーストして実行を確認します。
    Command Prompt から実行するときです。
    C:\Users>CD C:\TMP
    C:\TMP>appletviewer Main.htm
  9. 最終確認は WWWブラウザから Main.htm を立ち上げて下さい。
    セキュリティの警告が表示されたら解除して下さい。

プログラムの説明

  1. Java Beans は定められたルールに従って作成された普通の Object Class です。
    サーブレットやJSPなどネットワークプログラムで使われることが多いのですが Java Applet でも使われます。
    Beans の基礎は「プログラム入門(Java)/Console Mode Program/Java Beans の基礎」を参照して下さい。
    JavaBeans は Java Object Class の一種ですが、次のように仕様が定められています。
  2. 上記のことを頭に置いて TodayBean.java を見て下さい。
    一応 Beans の要件を満たしているでしょう。
    TodayBean.java ではコンストラクタで、現在の日付と時刻を取得して Calendar に設定します。
    次の getメソッド(get+プロパティ名)が定義されています。
    このプログラムでは setメソッドは必要が無いので定義されていません。
  3. Main.htm は Main.java(class) を呼び出す HTML ファイルです。
    applet code="Main" width="200" height="100" で Main.class を呼び出します。
  4. Main.class は Applet を継承したプログラムで new Bean.TodayBean(); で Beans をインスタンス化します。
    TodayBean から g.drawString(bean.getMonth(),20,70); で曜日を取得して印字します。
    制御の流れは次のようになります。
    Main.htm⇒Main.class(java)⇒TodayBean.class(java)⇒getMonth()で曜日を取得

【NOTE】

JSP や Servlets も含めて、Beans を使ったときの注意事項です。
  1. get Method も set Method も、必要が無ければ省略可能です。
    また領域として宣言されていないプロパティに対して、get Method を定義することも出来ます。
  2. Beans に普通のメソッドを定義することも出来ます。
    但し、jsp: タグから直接参照できるのは set Method, get Method だけのようです。
    jsp: タグからの呼び出しは setメソッド, getメソッドを呼び出す を参照して下さい。
  3. JSP から普通のメソッドを呼び出すときは <% Java のソース %> の中で使います。
    具体例は 石取りゲーム を参照して下さい。
  4. JSP のエラーは解り難く、Servlets に翻訳時と、実行時のエラーが混在して、行番号が指摘されるだけです。
  5. プログラムを修正したあと、リセットするには Tomcat を停止してブラウザを再起動して下さい。
    またブラウザを起動した時点で JSP に接続しているページがあると、Beans が影響を受けることがあります。

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