last modified: Jun./28th/2002
Swing コンポーネントは、アトミック・コンポーネント、中間コンポーネント、トップレベルコンポーネントの三つに階層化されています:
JFrame
JDialog
JApplet
JPanel
JScrollPane
JInternalFrame
JLayeredPane
JRootPane
JButton
JComboBox
JLabel
JProgressBar
JColorChooser
JFileChooser
JTable
各クラス名に 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 |
|
尚、ここではイベント処理のロジックを実装していないので、ボタンを押しても何もなりません。