Swingアプレットのサンプル

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");
		}
	}
}
アプレットが実行できない場合の代替内容。
ブラウザでの実行例


Copyright © 2001-2002 SUGAI, Manabu. All Rights Reserved.