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 サンプルと比べると下記のような違いがある