SwingでGUIアプリケーションを作成する

Javaには、Swingライブラリと呼ばれるGUI(Graphical User Interface)アプリケーションを作成するためのライブラリが含まれています。以下のプログラムを実行すると、GUIのウィンドウが開きます。

HelloSwing.java

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class HelloSwing {
  public static void main(String[] args) {
    // フレームを生成
    JFrame frame = new JFrame("Hello Swing");
    // フレームにラベルを追加
    JLabel label = new JLabel("Hello Swing!");
    frame.getContentPane().add(label);
    // ウインドウが閉じられたときにアプリケーションを終了する
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // frameの内容に合わせて、frameのサイズを調整
    frame.pack();

    // 画面中央付近に表示位置を設定
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((int) d.getWidth() / 2, (int) d.getHeight() / 2);
    // フレームを表示させる
    frame.setVisible(true);
  }
}

ライブラリに慣れる

Swingは非常に巨大なライブラリですが、GUIを作成するのに必要な部品、イベント処理(ボタンがクリックされた、テキストが変更されたときに実行するコード)などの仕組みを踏まえておけば、あとは、細かな使い方はリファレンスを見ながら開発を進めることができます。Eclipseのコード補完(Ctrl + Space)だけでも、大抵のことはわかりますが、Swingを実際に使ったサンプルコードを見るが早道でしょう。

Swingのコンポーネント

イベント処理

ユーザーがボタンを押したり、テキストを変更したりしたときの処理は、addActionListenerなどのListenerクラスを各コンポーネントに追加してあげることで定義できます。

JButton button = new JButton("button");
button.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e) {
     // ボタンを押したときの処理
  } 
});

Componentの配置

JPanel内などに、コンポーネントをどのように配置するかを指定するには、レイアウトを指定する必要があります。