Swing

[戻る] [前に] [次に]

Swingとは

Swingスィング)は、JDK1.2 でサポートされた AWT よりも新しい GUIコンポーネントです。AWT に対して以下のような特徴があります。

AWT に対応する Swing の部品には次のようなものがあります。

カテゴリ種類AWTSwing
ウィンドウフレームFrameJFrame
ダイアログDialogJDialog
部品ボタンButtonJButton
トグルボタン×JToggleButton
ラベルLabelJLabel
テキストフィールドTextFieldJTextField
テキストエリアTextAreaJTextArea
チェックボックスCheckboxJCheckBox
ラジオボタン×JRadioButton
コンボボックスChoiceJComboBox
リストListJList
スクロールバーScrollbarJScrollBar
テーブル×JTable
ツリー×JTree
プログレスバー×JProgressBar
ペインパネルPanelJPanel
スクロールペインScrollPaneJScrollPane
タブペイン×JTabbedPane
キャンバスCanvas
メニューメニューバーMenuBarJMenuBar
ツールバー×JToolBar
ステータスバー×
ポップアップメニューPopupMenuJPopupMenu

フレーム(JFrame)

◆ サンプル
JFrameTest.java
JFrame
◆ 説明

Swing では フレーム の作成に、Frame の代わりに JFrame を使用します。下記は、JFrame を表示するだけのシンプルなサンプルです。

JFrameTest.java
import java.awt.*;
import javax.swing.*;

class JFrameTest extends JFrame {
JFrameTest() {
getContentPane().setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JFrameTest");
setSize(200, 100);
setVisible(true);
}
public static void main(String [] args) {
new JFrameTest();
}
}

AWT の Frame サンプルと比べると下記のような違いがあります。

ボタン(JButton)

◆ サンプル
JButtonTest.java
JButton
◆ 説明

ボタンJButton クラスを用います。

◆ 補足

トグルボタン(JToggleButton)

◆ サンプル
JToggleButtonTest.java
JToggleButton
◆ 説明

トグルボタン は、1回ボタンを押すごとに、オン・オフの状態が切り替わるボタンです。JToggleButton クラスを用います。

◆ 補足

ラベル(JLabel)

◆ サンプル
JLabelTest.java
JLabel
◆ 説明

ラベル には Label クラスを用います。

◆ 補足

テキストフィールド(JTextField)

◆ サンプル
JTextFieldTest.java
JTextField
◆ 説明

テキストフィールド には JTextField クラスを用います。

◆ 補足

テキストエリア(JTextArea)

◆ サンプル
JTextAreaTest.java
JTextArea
◆ 説明

テキストエリア には JTextArea クラスを用います。

◆ 補足

チェックボックス(JCheckBox)

◆ サンプル
JCheckBoxTest.java
JCheckBox
◆ 説明

チェックボックス には JCheckBox クラスを用います。ActionListener でもチェックボックスをクリックされたことを監視可能ですが、チェックボックスのオン・オフ変化を確実に監視するには、ChangeListener(javax.swing.event)を用いるのが無難です。ButtonGroup によるグルーピングも可能です。

◆ 補足

ラジオボタン(JRadioButton)

◆ サンプル
JRadioButtonTest.java
JRadioButton
◆ 説明

ラジオボタン には JRadioButton クラスを用います。ButtonGroup でグループ化することにより、グループ内のオン状態のボタンが常にひとつになるように制御することができます。

◆ 補足

コンボボックス(JComboBox)

◆ サンプル
JComboBoxTest.java
JComboBox
◆ 説明

コンボボックス には JComboBox クラスを用います。キーボードで選択操作する場合、キー移動する度に actionPerformed() が呼ばれるので注意してください。

◆ 補足

リスト(JList)

◆ サンプル
JListTest.java
JList
◆ 説明

リスト には JList クラスを用います。

◆ 補足

スクロールバー(JScrollBar)

◆ サンプル
JScrollBarTest.java
JScrollBar
◆ 説明

スクロールバー には JScrollBar クラスを用います。テキストエリアや、テーブルなどの部品にスクロールバーをつけるには、JScrollBar ではなく JScrollPane を用います。

◆ 補足

プログレスバー(JProgressBar)

◆ サンプル
JProgressBarTest.java
JProgressBar
◆ 説明

プログレスバー には JProgressBar クラスを用います。時間のかかる処理の経過状況などを表示するのに用いられます。

◆ 補足

テーブル(JTable)

◆ サンプル
JTableTest.java
DefaultTableModelTest.java
JTable
◆ 説明

テーブル には JTable クラスを用います。通常のテーブルは、セルの編集は可能ですが、行や列を追加・削除することができません。行や列を追加削除するには TableModel を用います。基本的な TableModel として、DefaultTableModel を用いた例をサンプルに示しています。

◆ 補足

ツリー(JTree)

◆ サンプル
JTreeTest.java
JTree
◆ 説明

ツリー を作成するには JTree クラスを用います。

◆ 補足

メニューバー(JMenuBar)

◆ サンプル
JMenuBarTest.java
JMenuBar
◆ 説明

メニュー を作成するには、主に下記の 4つのクラスを用います。

クラス説明
JMenuBarメニューバー
JMenuメニュー。子アイテムを持つメニュー項目。
JMenuItemメニューアイテム。子アイテムを持たないメニュー項目。
JCheckBoxMenuItemチェックタイプのメニューアイテム。

MenuBar の場合は Menu と CheckBoxMenuItem にアクションリスナーを追加していましたが、JMenuBar の場合はそれぞれのメニューアイテムにアクションリスナーを登録します。

◆ 補足

ツールバー(JToolBar)

◆ サンプル
JToolBarTest.java
JToolBar
◆ 説明

ツールバー を作成するには JToolBar クラスを用います。ツールバーの上には、JButton で作成したボタンなどを配置することができます。

ステータスバー(JStatusBar)

◆ サンプル
JStatusBarTest.java
JStatusBar
◆ 説明

Swing ではステータスバー専用の部品はサポートされていません。代わりに、JLabel で生成したラベルを BorderLayout.SOUTH に貼り付けることで、ステータスバーを模倣することができます。

スクロールペイン(JScrollPane)

◆ サンプル
JScrollPaneTest.java
JScrollPane
◆ 説明

JTextArea、JList、JTree などの部品に スクロールバー をつけるには、スクロールペインJScrollPane)の中にこれらの部品を貼り付けます。

タブペイン(JTabbedPane)

◆ サンプル
JTabbedPaneTest.java
JTabbedPane
◆ 説明

画面をタブ付きのペインで切り替えるには、タブペインJTabbedPane)を用います。

◆ 補足

画面を分割する(JSplitPane)

◆ サンプル
JSplitPaneTest.java
JSplitPane
◆ 説明

画面を左右や上下に分割するには、スプリットペインJSplitPane)を用います。

◆ 補足

ダイアログ(JDialog)

◆ サンプル
JDialogTest.java
JDialog
◆ 説明

ダイアログ を表示するには JDialog を用います。通常、JDialog のサブクラスを作成し、そのサブクラスのインスタンスを生成してダイアログを表示します。

◆ 補足

ポップアップメニュー(JPopupMenu)

◆ サンプル
JPopupMenuTest.java
JPopupMenu
◆ 説明

ポップアップメニュー を表示するには JPopupMenu を用います。

◆ 補足

パネル(JPanel)

◆ サンプル
JPanelTest.java
JPanel
◆ 説明

パネルJPanel)は、より柔軟なレイアウトを実現する際に用いられます。フレームやダイアログ上に複数のパネルを配置し、パネル内に部品を配置することにより、通常の XxxxLayout では表現できないレイアウトを実現します。「パネルによるレイアウト」を参照してください。

ルック&フィールの変更

◆ サンプル
LookAndFeelTest.java
Metal Windows Motif
Metal Windows Motif
◆ 説明

Swing では、GUI のルック&フィールを動的に変更することができます。現状では、Metalモード、Windowsモード、Motifモードがサポートされています。


http://www.tohoho-web.com/java/swing.htm
初版:2004年6月26日、最終更新:2004年6月26日
[戻る] [前に] [次に]