last modified: Jun./28th/2002
Swing コンポーネントは、アトミック・コンポーネント、中間コンポーネント、トップレベルコンポーネントの三つに階層化されています:
JFrameJDialogJAppletJPanelJScrollPaneJInternalFrameJLayeredPaneJRootPaneJButtonJComboBoxJLabelJProgressBar JColorChooserJFileChooserJTable各クラス名に J が付いているのは、 AWT のコンポーネントと区別しているからです。対応する AWT コンポーネントを継承していることを示していると考えてください。
Swing コンポーネントを配置する為の外枠である Top-level コンテナは必須であり、そこに Intermediate コンテナを配置し、さらに Atomic コンテナを配置します。各コンテナは層として他の層の土台として働くことになります。
大雑把に言うと、 Swing アプリケーションを作成するには、次の手順が必要です。
java.awt.*, javax.swing.* のインポート以上が Swing アプリケーションで必要な基本的な道具です。あるものは必須ではなく、あるものは複数を組み合わせて使います。例えば、中間コンテナは必ずしも必要ではなく、レイアウトマネージャは複数組み合わせることがあります。
これらの道具の詳細は、追って説明します。
ここで Swing アプリケーションのおおまかな枠組みを示します。
GUI_Hierarchy.java:
// awt パッケージのインポート
import java.awt.*;
// swing パッケージのインポート
import javax.swing.*;
public class GUI_Hierarchy {
public static void main(String[] args) {
// 部品のインスタンス化
// トップレベルコンテナのインスタンス化
JFrame frame = new JFrame("GUI Hierarchy");
// 中間コンテナのインスタンス化
JPanel panel = new JPanel();
// アトミック・コンポーネントのインスタンス化
JButton button = new JButton("OK");
// 部品の配置
// 中間コンテナにレイアウトマネージャを指定
panel.setLayout(new BorderLayout());
// 中間コンテナに部品を配置
panel.add(button, BorderLayout.CENTER);
// コンテント・ペインの取得
Container cont = frame.getContentPane();
// コンテントペインに中間コンテナを配置
cont.add(panel);
// トップレベルコンテナのセットアップ
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
おおまかに言って、アトミック・コンポーネントを中間コンテナに配置し、中間コンテナをトップレベル・コンテナに配置することで、GUI アプリケーションの見栄えは作られます。
実行例:
C:\java>javac GUI_Hierarchy.java C:\java>java GUI_Hierarchy |
|
尚、ここではイベント処理のロジックを実装していないので、ボタンを押しても何もなりません。