AppletクラスからFrameクラスへの変更
http://wisdom.sakura.ne.jp/system/java/awt/Gjava33.html で紹介されているような単純な方法で移行できない場合の,アプレットをアプリケーションへ書き換える方法です。
継承するクラスをAppletからFrameに変更し,mainメソッドを持つクラスを作ってその中からFrameのinitメソッドを呼び出す,基本的にそれだけです。
下の例は,継承するクラスをAppletからFrameに変更したクラスFrameAppletをアプリケーションとして動かすmainメソッドの例です。
ウィンドウの閉じるボタンで終了する部分を書き加えています。
setBoundsのx,y,width,heightは任意の整数に置き換えて下さい。
public static void main(String [] args )
{
FrameApplet frame = new FrameApplet();
frame.init();
frame.setBounds( x, y, width, height );
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e)
{ System.exit(0);}
}
);
frame.setVisible(true);
}
この知識を得た顛末
2005年に,仕事関係で公開するプログラムをJavaアプレットで作りました。
jarとhtmlを配布して,ローカルに置いてもらって実行する形です。
当時はWindowsはXPの時代で,まだ98も使われてました。
Macも含め,スキルもいろんな人が使うことを想定し,インストールフリー,プラットフォームフリーがよいと思い,アプレットで作りました。
しかし,アプレットはどんどん肩身が狭くなり,使用するには却ってスキルが必要になってしまいました。
アプリケーションに書き換えようと思いながら,アプレットとしても特殊な作り方をしていた(スキル不足でスマートなやり方がわからず)ため,どうしていいかわからず放置していました。
通常は,mainメソッドを使って簡単にできる (http://wisdom.sakura.ne.jp/system/java/awt/Gjava33.html)
ようですが,特殊な作り方,具体的には,2つのクラスを同時に動かしてお互いに通信させており,単純にこの方法は使えませんでした。
しかし今回,重い腰を上げてやってみたところ,思いの外あっさりとできてしまいました。
Javaの,プリミティヴなクラスから継承していろんなクラスができている構造のメリットがよくわかりました。