簡単なGUI作品制作例 電卓 ステップ6(アプレット化)

前のページ) の作品をアプレット化します。
アプレットとJAppletとJPanelの継承関係の違いを以下に示します。 詳細は次のリンクで調べましょう。

java.lang.Object
  └java.awt.Component
      └java.awt.Container
          └java.awt.Panel
              └java.applet.Applet
                  └javax.swing.JApplet
java.lang.Object
  └java.awt.Component
      └java.awt.Container
          └javax.swing.JComponent
              └javax.swing.JPanel
              

これから分かるように、JAppletJPanelは、どちらも Containerのサブクラスです。 つまり、どちらも部品を配置でき、配置が終わったらフレームなどに入れられる部品クラスと言えます。
そしてこれまでで作ったSimpleCalcPanelは、JPanelクラスの継承として作成しましたが、 JPanelクラスの代わりに、JAppletクラスの継承クラスへ変更は容易で、 しかもフレームの中でも使えるはず!というわけです。
実際に、JPanelの代わりにへJApplet変更するだけで、アプレットの作品として使えます。 但しこの作品の場合は、部品の配置変更を外側のフレームからlayoutメソッドで行っていたので それをinitメソッド(アプレットの初期設定用メソッド)で実行させる変更が必要です。
(始めからアプレット兼用作品にする場合は、initメソッドを用意して、そこで配置するとよいでしょう。)
SimpleCalcPanel.java を次のように変更し、 initを追加します。


	・・・省略・・・
public class SimpleCalcPanel extends JPanel javax.swing.JApplet implements ActionListener{
	・・・省略・・・
	public void init() { //Appletのオーバーライドメソッド追加
		this.layout(5);//部品の隙間を5にして配置
	}
	・・・省略・・・
}

この変更で、これを継承するNomalCalcPanelクラスもアプレットになり、 同時に、これを使っているフレーム(SimpleCalculator)は、ローカル作品として動作するでしょう。
そして、NomalCalcPanelのアプレットを使うHTML(ファイル名:NomalCalcPanel.html)は 次のように作れます。

<html lang="ja">
<head>
</head>
<body>
<applet CODEBASE="./" code="work.NomalCalcPanel.class"  Width="250" Height="250" >
</applet>
</body>
</html>