ウインドウの表示

Swingを使ってウインドウを表示するプログラムを示します。

import javax.swing.*;
public class Sample1
{
public static void main( String[] args)
{
JFrame f;
f = new JFrame();
f. setVisible( true);
}
}

１行目ではimport文でswingパッケージを利用することを示しています。

実際の処理は ９行目でJFrameクラスのインスタンスを作成し 作成したインスタンスに対し１０行目でsetVisibleメソッドを行います。

JFrameクラスのインスタンスを作成 することでウインドウが作成されます。

setVisible(true)メソッドは、そのウインドウを表示 (見えるように)します。

このプログラムを実行すると、小さなウインドウが１つ表示されます。

マウス操作によりウインドウに対して次を行うことができます。

最小化

最大

ウインドウサイズの変更

位置の変更

ウインドウを閉じても、プログラムは実行中のままです。

プログラムを終了するにはjavaコマンドを入力した画面でctrlを押したままでCを押します。(Ctrl+C と記述)

プログラムを終了すればウインドウも消えます。

ウインドウを閉じることとプログラムの終了

ウインドウを閉じたときに、プログラムを終了すべきか実行中のままとするかの選択は、 プログラムにまかせるべきです。

２つのウインドウを表示するプログラムを示します。

import javax.swing.*;
public class Sample2
{
public static void main( String[] args)
{
JFrame f, g;
f = new JFrame();
f. setVisible( true);
f. setTitle( "- f -");
f. setSize( 200, 300);
g = new JFrame();
g. setVisible( true);
g. setTitle( "- g -");
g. setSize( 300, 100);
}
}

setTitleメソッドはウインドウのタイトルを文字列で指定します。

setSizeメソッドはウインドウの大きさを横、縦の数値で指定します。

２つのインスタンスがそれぞれのウインドウに対応しています。

動作をシーケンス図であらわしたものです。

mainメソッドからインスタンスが作成されたときに、新たなスレッドとして動作を始めます。

親のスレッドが終了したときは子のスレッドも終了します。

子のスレッドが終了したからといって親スレッドは終了しません。

特定のウインドウが閉じられたときに、プログラムを終了するようにもできます。

上記のプログラムで fのウインドウが閉じられたときにプログラムを終了するには 次の行を追加します。

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

これを追加すると

fのウインドウを閉じると親スレッドが終了します。

親スレッドが終了するとgのスレッドも終了しgのウインドウも閉じます。

gのウインドウを閉じたときは終了しません。

補足

環境によっては、ウインドウのバーが見えないほど上部に表示されることがあるようです。

次を追加することで、ウインドウの表示位置を指定できます。

f.setLocation(80,50);

引数は、横位置、縦位置です。