Table of Contents
Java で基本的なウィンドウを作成・表示する方法について紹介します。
ウィンドウを作成するためのクラスとしてJFrame(javax.swing.JFrame)を使用します。過去には、そのスーパークラスであるFrame(java.awt.Frame)を使用していましたが、現在は新しいJFrameを使うことが推奨されます。
今回は、JFrameを使用して以下のような、中身のないシンプルなウィンドウを作成する例を紹介します。
ウィンドウを作成するソースコード
以下は、サイズが 300px × 200px のウィンドウを画面中央に表示するJavaのプログラムです。
import javax.swing.JFrame; public class Main { public static void main(String[] args) { // ウィンドウの作成およびタイトルの設定 JFrame frame = new JFrame("ウィンドウのタイトル"); // バツボタンでプログラムを終了するようにする frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // ウィンドウサイズの指定 frame.setSize(300, 200); // ウィンドウを画面中央に配置 frame.setLocationRelativeTo(null); // ウィンドウを可視状態にする frame.setVisible(true); } }
これを実行するとウィンドウが作成・表示されます。
ウィンドウの作成
JFrameクラスをインスタンス化すると、ウィンドウが作成されます。インスタンス化についての詳しい説明は以下の記事をご覧ください。
[Java] メソッドの定義と使用例とクラスのインスタンス化
以下は、frameという変数にインスタンス化したJFrameを代入する例です。
JFrame frame = new JFrame();
JFrameのコンストラクタに文字列を渡すと、それが作成されるウィンドウのタイトルバーに表示されるタイトルとなります。
JFrame frame = new JFrame("ここにタイトルを設定");
また、JFrameを利用するには以下のパッケージのインポートが必要になりますので、プログラムの最初に以下のインポート文を書いてください。
import javax.swing.JFrame
ウィンドウが閉じるようにする
JFrameで作成されたウィンドウは、デフォルトでは、タイトルバーのバツボタンを押してもプログラム自体は終了せず、ウィンドウが不可視になるだけです。
バツボタンによってプログラムが終了するようにするには、以下の設定を行います。
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JFrame.EXIT_ON_CLOSE は、JFrameクラスに設定されている定数で、このメソッドの引数として使えばアプリケーションを終了させることができます。
デフォルトでは JFrame.HIDE_ON_CLOSE という値が設定されています。
ウィンドウのサイズを指定する
ウィンドウのサイズを決定する方法はいくつかありますが、最もシンプルは方法はメソッド setSize を使用することです。
frame.setSize(横幅(px), 縦幅(px));
このメソッドによって、ウィンドウのサイズをピクセル単位で設定できます。
ウィンドウを画面中央に配置
何も設定しなければ、作成したウィンドウはデバイスの画面左上に表示されます。
ウィンドウの表示位置を画面中央にするには、以下のメソッドを使用します。
frame.setLocationRelativeTo(null);
引数に null を指定すると画面中央に表示されます。
null 以外を指定する場合は、他のウィンドウなどが表示されており、それを基準に中心を設定したいというときです。
ウィンドウを可視状態にする
実は、JFrameで作成したウィンドウは、デフォルトでは透明(不可視)な状態です。したがって、以下のメソッドを呼び出さない限り、ウィンドウが表示されません。
frame.setVisible(true);
このメソッドは、ウィンドウサイズの設定や位置の変更を行なった後に呼び出してください。そうしないと、画面が表示されてからウィンドウサイズが突然変わったり、位置が勝手に移動したりと、利用者の混乱を招く動作が起こる可能性があります。
ウィンドウサイズを固定化する
今回のサンプルでは使用していませんが、以下のメソッドを使えばウィンドウサイズを変更できないように設定できます。
frame.setResizable(false);
おしまい
以上、Javaで基本的なウィンドウを作成して表示する方法でした。より詳しいJFrameの使い方については、以下の公式ドキュメントをご覧ください。
ピンバック: [Java] ウィンドウにボタンを配置する – JButtonとFlowLayout | JoyPlotドキュメント