フレームの作成

GUIを使う

コマンドラインから文字を入力することによるコンピュータの操作をCUIといいます。キャラクタ(文字)ユーザーインターフェースの頭文字をとったものです。最近のコンピュータは画面にボタンなどを表示しマウスでクリックして操作をするのが主流になっています。これをGUIといいます。グラフィック(画像の)ユーザーインターフェースの頭文字をとったものです。

GUIはプログラムを使う側のコンピュータの操作を楽にしましたが,プログラムを作る側では複雑なものになります。javaをはじめ最近ではオブジェクト指向言語であることが当たり前になっていますが,それは最近のGUIの普及から必然的にそうならざるを得ないからだと思います。

javaにはGUIを使用したプログラムを作るための機能が部品として用意されています。javaではこの部品のことをクラスライブラリといいます。この部品の使い方を覚えましょう。

空のウインドウを作る

まず、次のような空のウインドウを作ります。javaでは Frame (フレーム)と呼びます。

単なるフレーム

プログラム名 Frame01.java

import javax.swing.*;

/** JFrame 最初の一歩 */
public class Frame01{
	public static void main(String[] args){
		/* フレームを作成 */
		JFrame myframe = new JFrame();

		/* サイズを指定 */
		myframe.setSize(400, 300);

		/* 終了処理を設定 */
		myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		/* 実際に表示する */
		myframe.setVisible(true);
	}
}
import javax.swing.*;
JFrame は javax.swing というパッケージのなかにあるので、本来は javax.swing.JFrame と書かなければならない。しかし、これでは面倒なので、import javax.swing.*; と冒頭に書くことで、javax.swing を省略できるようにする。
JFrameというキーワード(機能)がないときは javax.swing. をつけて探せということ。
JFrame
フレームをつくるクラス。(Frameの拡張)
JFrame myframe;
double x は「 x が double という型の変数」であるという宣言だが,
myframe が JFrameというクラスのインスタンスであるという宣言。myframe という名前は,JFrame という決められたクラス名に対して,自分で決めたインスタンスの名前という意味合いで区別するようにプログラムの作成例でよく使われる名前の付け方。
new JFrame
JFrameのクラスのフレームをひとつつる。myframe = new JFrame とすればつくったものに myframe と名前をつけるとうこと。
myframe.setSize(400, 300);
myframeの大きさを幅400ピクセル、高さ300ピクセルにする。
myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
[×]ボタンを押すことで、アプリケーションを終了する。
myframe.setVisible(true);
myframe を表示する。(true を false にすると隠すことになる)

myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); を忘れると、[×] ボタンでウインドウは閉じますが、プログラムは終了しません。下記のように次の命令ができない状態になります。プログラムはまだ実行中です。

$ java Frame01


このようなときには、[Ctrl] + [C] (コントロールキーを押しながらCを押す)の操作をしてください。プログラムが終了します。

要点

インスタンスの生成

意味 javaでの一般的用語
JFrame myframe; これからmyframeといえばJFrameの仲間だよ myframeをJFrameのインスタンスと宣言
myframe = new JFrame(); JFrameの実体を一つ作ってその名前をmyframeとする JFrameのインスタンスを生成してmyframeに代入
JFrame myframe = new JFrame(); 上記の2つを一文で表現

JFrame で使えるメソッド

戻り値など メソッド 概要 継承
void setSize(int width,int height)) このコンポーネントのサイズを width および height に変更。単位はピクセル。 java.awt.Component
void setVisible(boolean b) このコンポーネントを表示するか、または非表示に。trueで表示、falseで非表示。 java.awt.Component
static void setDefaultCloseOperation(int operation) ユーザがウィンドウを閉じようとしたときにどのように対応するかを指定。EXIT_ON_CLOSE は対応するintの値が入った変数(定数) javax.swing.JFrame
void setLocation(int x, int y) このコンポーネントを新しい位置に移動。単位はピクセル。(ここでは使っていない) java.awt.Component
void setLocationByPlatform(boolean locationByPlatform) ウィンドウの表示位置をシステム任せにするかどうか。trueで任せる、falseで任せない。(ここでは使っていない) java.awt.Window

課題

1.

上記の Frame01.java をつくり実行してみなさい

ファイル名 Frame01.java

2.

Frame01.javaを拡張してフレームを2つ作る Frame02.java をつくり実行してみなさい

ファイル名 Frame02.java

フレームの位置を指定しないと、全く同じところに2つフレームを作るのでわからないかも知れません。タイトルバーをドラッグして、2つになっていることを確認しなさい。

また、setLocation(10, 20) などのメソッドを使って、位置をずらすこともできます。左上の隅が(0,0)、画面の横幅が1024,縦の幅が768ですから、値を大きくしすぎると後で困るので注意。

もくじ

聖愛高等学校
http://www.seiai.ed.jp/
Last Modified