トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Swingの基本:ウィンドウアプリケーション

ウィンドウアプリケーション

 Swingとは

Java言語の1.2以降のバージョンで標準で用意されているGUIのツールキット。GUIツールキットとしてはそれ以前はAWTを用いていたが、Swingの方が柔軟性が高く、表現力もあるため、ここではSwingを用いたウィンドウアプリケーションを作成していく。

 ウィンドウの基本JFrame

JFrameの終了の設定

  • ウィンドウの終了ボタンを押したさいに特殊な処理を行わないのであれば、JFrameに対して、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)を設定しておく。

JFrameの大きさ設定

  • JFrameに対してsetSize(<横の長さ>,<縦の長さ>)を設定する。
  • 設定しない場合、タイトル部分の一部しか見えない小さいウィンドウが開いてしまう。

最初のウィンドウアプリケーション

1
2
3
4
5
6
7
8
9
10
11
package sample.swing;

import javax.swing.JFrame;

public class FirstFrame {
    public static void main(String[] args) {
        JFrame frame = new JFrame("最初のGUIアプリケーション");    //javax.swing.JFrameの初期化
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //×を押したときに終了するように
        frame.setVisible(true);    //可視化
    }
}

JFrameを継承したウィンドウアプリケーション

  • 上記の例ではJFrameを内部的にインスタンス化していたが、オブジェクト指向言語らしく、JFrameを継承することもできる。
  • その場合には、メソッド前のインスタンス名は省略できる。つまり、上の例ではframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)であった部分が、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)だけになっている。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package sample.swing;

import javax.swing.JFrame;

@SuppressWarnings("serial")
public class MyJFrame extends JFrame {
    public MyJFrame() {
        setTitle("JFrameをカスタマイズしたウィンドウアプリケーション");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //×を押したときに終了するように
        setVisible(true);    //可視化
        setSize(300,200);
    }
    public static void main(String[] args) {
        new MyJFrame();
    }
}

 JFrameへのコンポーネント追加

  • JFrameへGUI部品を組み込む場合、ContentPaneを取得し、そこにaddする形となる。そのため、JDK1.4まではgetContentPane().add(<GUI部品>)であった。しかしながら、煩雑であるため、JavaSE5以降では、JFrameに対して直接addしても大丈夫なように便宜上、オーバーライドされている(setLayoutやremoveも)。

ラベルを追加したフレーム例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package sample.swing;

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

@SuppressWarnings("serial")
public class FrameWithLabel extends JFrame {
    public FrameWithLabel() {
        //フレーム関係の初期化
        setTitle("ラベルを追加したフレーム");
        //ラベルを追加
        JLabel label = new JLabel("これがラベルです");
        add(label);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //×を押したときに終了するように
        pack();
        setVisible(true);    //可視化
    }
    public static void main(String[] args) {
        new FrameWithLabel();
    }
}
FirstFrame.java FrameWithLabel.java MyJFrame.java

最終更新時間:2008年06月26日 08時48分52秒