last modified: Aug./09th/2003
AWT と同様に Swing でもアプレットを作ることができます。基本的には AWT とまったく同様です。
アプレットは、ブラウザに搭載された JVM で実行します。Windows の MS I.E. の場合は、MS が独自に実装しているのですが、Sun Microsystemsとの係争によって、バージョンアップが禁じられており、残念ながら満足する機能をサポートしていません。Swing のアプレットを試してみたい場合は、Java 2 SDK 1.4.x などを導入して、同梱の Java Plug-in をブラウザと関連付ける必要があります。あるいは、試してみたいだけならば、SDK の appletviewer コマンドで実行することもできます。
HTML は AWT のアプレットと同様です。
<?xml version="1.0" encoding="Shift_JIS" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>Swingアプレット</title>
<meta http-equiv="Content-type"
content="text/html; charset=Shift_JIS" />
</head>
<body>
<p><applet code="SwingAppletDemo" width="100" height="100">
アプレットが実行できない場合の代替内容。
</applet></p>
</body>
</html>
Java のソースで見ると、部品に Swing のものを使うほかは特に大きな違いはありません。単体のアプリケーションでの違いと同様で、コンテント・ペインを取得することが大きな違いです。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingAppletDemo extends JApplet {
public void init() {
MyPanel panel = new MyPanel();
Container cont = this.getContentPane();
cont.add(panel);
}
}
class MyPanel extends JPanel implements ActionListener {
JButton button;
JLabel label;
int i = 0;
MyPanel() {
button = new JButton("Click Me!");
label = new JLabel("clicks");
this.setLayout(new BorderLayout());
this.add(button, BorderLayout.NORTH);
this.add(label, BorderLayout.CENTER);
// 自分自身にイベントを投げる
button.addActionListener(this);
}
// イベント・リスナー
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button) {
i++;
label.setText(i + " clicks");
}
}
}
| ブラウザでの実行例 |
|---|