Java
Java
Java2 SE 5.0 API
Java2 SE 1.4 API
Java2 EE API
Struts 1.0.2
MSDN2 Library
MySQL 5.1
MySQL 4.1
HTMLリファレンス
CSSリファレンス
JavaScript
基本カラーチャート
カレンダー
 最新PG・講座情報
 最新ニュース
 電子辞書・辞典
ご意見・ご要望はこちらまで

連載

Java

アプレットのいろいろな表示方法


1.通常のアプレット

 JavaのフォームをHTMLに表示するにはアプレットのクラスを利用することになりますが、GUIの種類で表示方法が変わります。 まずは通常のアプレットを表示してみます。AWT(Abstract Window Toolkit) を利用したアプレットと、同じAWTを拡張したSwingを利用したアプレットを作成します。

 フォームは1つのラベルと2つのボタンを貼り付け、ボタンはそれぞれ"表示"、"消去"とし、ボーダーレイアウト(BorderLayout) で配置します。 「表示」ボタンをクリックするとラベル上に "Hello World!" と表示し、「消去」ボタンでその表示をクリアするという仕様です。(以降のテストで全て同じ)

通常のアプレットの表示

 表示上のAWTとSwingとではデフォルトの背景色、フォント、ボタンの形が異なります。 AWTでは各プラットホームのOSに合わせた形で表示されますが、Swingではどのプラットホームでも同じ形で表示されます。


2.プログラムの確認1

 上記の通常のアプレットのプログラムの違いは、AWTの方ではフローレイアウト(FlowLayout) がデフォルトでアプレット(Applet) 上にコンポーネント(部品)を貼りますが、 Swingの方ではボーダーレイアウト(BorderLayout) がデフォルトでアプレット(JApplet) のコンテントペイン(ContentPane) 上にコンポーネント(部品)を貼ります。

 Swingでのコンポーネント(部品)はトップレベルコンテナ(JApplet, JFrame, JDialog)に直接表示されるのではなく、中間のコンテントペイン上に表示されます。

 
 1: import java.applet.Applet;
 2: import java.awt.*;
 3: import java.awt.event.*;
 4:
 5: public class HelloApplet extends Applet implements ActionListener{ 
 6:     Label label;                               // ラベル用のフィールド
 7:     Button b1, b2;                             // ボタン用のフィールド
 8:
 9:     public void init(){
10:         this.setLayout(new BorderLayout());    // BorderLayoutにする
11:
12:         label = new Label("", Label.CENTER);   // Labelオブジェクトの生成
13:         Panel p1 = new Panel();                // Panelオブジェクトの生成
14:         b1 = new Button("表示");               // Buttonオブジェクトの生成
15:         b2 = new Button("消去");               // Buttonオブジェクトの生成
16:         p1.add(b1);                            // パネルにボタンを置く
17:         p1.add(b2);                            // パネルにボタンを置く
18:         b1.addActionListener(this);            // イベントリスナーを設定
19:         b2.addActionListener(this);            // イベントリスナーを設定
20:
21:         this.add(label, BorderLayout.CENTER);  // ラベルを置く
22:         this.add(p1, BorderLayout.SOUTH);      // パネルを置く
23:     }
24:
25:     public void actionPerformed(ActionEvent e){
26:         if (e.getSource() == b1){              // b1が押されたら
27:             label.setText("Hello World!");     // labelに文字列を設定 
28:         } else if(e.getSource() == b2){        // b2が押されたら
29:             label.setText("");                 // labelの文字列を消す
30:         }
31:     }
32: }
 通常のアプレットのAWT版 (HelloApplet.java)
 10行目   :FlowLayout がデフォルトなので、BorderLayout に設定することを明記する。
 21-22行目:自分自身(Applet)上にコンポーネント(部品)を貼る。
 
 1: import java.awt.*;
 2: import java.awt.event.*;
 3: import javax.swing.*;
 4:
 5: public class HelloJApplet extends JApplet implements ActionListener{ 
 6:     JLabel label;                              // ラベル用のフィールド
 7:     JButton b1, b2;                            // ボタン用のフィールド
 8:
 9:     public void init(){
10:         Container c = getContentPane();        // アプレットの内容表示域を得る
11:         c.setLayout(new BorderLayout());       // BorderLayoutにする(default)
12:
13:         label = new JLabel("", JLabel.CENTER); // JLabelオブジェクトの生成
14:         JPanel p1 = new JPanel();              // JPanelオブジェクトの生成
16:         b1 = new JButton("表示");              // JButtonオブジェクトの生成
17:         b2 = new JButton("消去");              // JButtonオブジェクトの生成
18:         p1.add(b1);                            // パネルにボタンを置く
19:         p1.add(b2);                            // パネルにボタンを置く
20:         b1.addActionListener(this);            // イベントリスナーを設定
21:         b2.addActionListener(this);            // イベントリスナーを設定
22:
23:         c.add(label, BorderLayout.CENTER);     // ラベルを置く
24:         c.add(p1, BorderLayout.SOUTH);         // パネルを置く
25:     }
26:
27:     public void actionPerformed(ActionEvent e){
            ・・・
            (上と同じ)
            ・・・
28:     }
29: }
 通常のアプレットのSwing版 (HelloJApplet.java)
 10行目   :アプレット(JApplet) 上のコンテントペイン(ContentPane) を得る。
 11行目   :BorderLayout に設定しているが、デフォルトなので省略しても良い。
 23-24行目:コンテントペイン(ContentPane)上にコンポーネント(部品)を貼る。

 注)各コンポーネント(部品)のクラス名はSwingでは先頭にJ が付加されています。

 
 INDEX
  連載 Java アプレットのいろいろな表示方法
1.通常のアプレット
  2.フレームを利用した表示
  3.両方からの表示
  4.問題点
Top
Copyright© 2003-2007 FumikiChan All Rights Reserved.
http://www.fumikichan.net/