Java アプレット版 HelloWorld
ブラウザとして旧式の Internet Explorer を想定しています。
ここでは実際に単純なアプレットを作ってみましょう。
ここでは開発環境としては、Eclipse を使っています。
また、Swing のコンポーネントを利用するので JApplet から派生しています。
Swing のコンポーネントを利用するには Applet ではなく、JApplet からの派生が必須です。
出来上がりは次のようになります。単純に、メッセージを表示しているだけです。
これはブラウザの画面で、HTML にアプレットを読み込む記述がしてあります。
ではさっそく、Java のコードを書いてみましょう。
package com.keicode.java.test;
import java.awt.EventQueue;
import javax.swing.*;
@SuppressWarnings("serial")
public class Applet1 extends JApplet {
@Override
public void init() {
super.init();
EventQueue.invokeLater(new Runnable(){
@Override
public void run() {
JLabel label = new JLabel("Hello, Applet!");
add(label);
}
});
}
}
これをアプレットとして実行します。
すると JDK 付属のアプレットビューア内でこのアプレットが起動されます。
まずはここまで出来れば、プログラムのコードとしては出来ています。
次にこれをブラウザのページ内にロードすることを考えましょう。
今回は localhost にウェブサーバーが存在することを前提とします。
localhost の仮想ディレクトリ内に test.html として次を作成します。
<!doctype html>
<html>
<meta charset='UTF-8'>
<body>
<applet
code=com.keicode.java.test.Applet1.class
width="200" height="200" >
</applet>
</body>
</html>
次に、ここではパッケージの構成に合わせて test.html と同じ場所に、サブディレクトリを作成します。ここでは com.keicode.java.test なので、 次のようなディレクトリ構成になります。
この test ディレクトリに、上記のコードをコンパイルして出来た *.class を配置します。(Applet1.class と Applet1$1.class)
そこでブラウザから test.html を要求します。
すると、恐らく次のようなセキュリティ上のエラーが発生するはずです。
これは上記で作成したアプレットが信用されていないために発生しています。 ここでは localhost からの読み込まれたアプレットは安全であるとみなすことにして、セキュリティ上の制限を解除しましょう。
Java のセキュリティ設定を変更するために、Control Panel から Java の設定を開きます。
この中のセキュリティタブから、例外リストに "http://localhost/" を追加します。
途中警告が表示されますが、継続してください。
再度、ブラウザに戻って test.html を要求します。
今度は「危険かもしれないけど、本当に実行するか?」という意味の警告が表示され、 それに対して "Run" (実行) とするとアプレットが実行されるはずです。