Swing(スィング)は、JDK1.2 でサポートされた AWT よりも新しい GUIコンポーネントです。
AWTに対して以下のような特徴がある
AWT に対応する Swing の部品には次のようなものがある
カテゴリ | 種類 | AWT | Swing |
ウィンドウ | フレーム | Frame | JFrame |
ダイアログ | Dialog | JDialog | |
部品 | ボタン | Button | JButton |
トグルボタン | × | JToggleButton? | |
ラベル | Label | JLabel | |
テキストフィールド | TextField? | JTextField? | |
テキストエリア | TextArea? | JTextArea? | |
チェックボックス | Checkbox | JCheckBox? | |
ラジオボタン | × | JRadioButton? | |
コンボボックス | Choice | JComboBox? | |
リスト | List | JList | |
スクロールバー | Scrollbar | JScrollBar? | |
テーブル | × | JTable | |
ツリー | × | JTree | |
プログレスバー | × | JProgressBar? | |
ペイン | パネル | Panel | JPanel |
スクロールペイン | ScrollPane? | JScrollPane? | |
タブペイン | × | JTabbedPane? | |
キャンバス | Canvas | ? | |
メニュー | メニューバー | MenuBar | JMenuBar |
ツールバー | × | JToolBar? | |
ステータスバー | × | ※ | |
ポップアップメニュー | PopupMenu? | JPopupMenu? |
下記は、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 サンプルと比べると下記のような違いがある