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"); } } }
ブラウザでの実行例 |
---|