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