コマンドラインから文字を入力することによるコンピュータの操作をCUIといいます。キャラクタ(文字)ユーザーインターフェースの頭文字をとったものです。最近のコンピュータは画面にボタンなどを表示しマウスでクリックして操作をするのが主流になっています。これをGUIといいます。グラフィック(画像の)ユーザーインターフェースの頭文字をとったものです。
GUIはプログラムを使う側のコンピュータの操作を楽にしましたが,プログラムを作る側では複雑なものになります。javaをはじめ最近ではオブジェクト指向言語であることが当たり前になっていますが,それは最近のGUIの普及から必然的にそうならざるを得ないからだと思います。
javaにはGUIを使用したプログラムを作るための機能が部品として用意されています。javaではこの部品のことをクラスライブラリといいます。この部品の使い方を覚えましょう。
まず、次のような空のウインドウを作ります。javaでは Frame (フレーム)と呼びます。
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); } }
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 |
上記の Frame01.java をつくり実行してみなさい
Frame01.javaを拡張してフレームを2つ作る Frame02.java をつくり実行してみなさい
フレームの位置を指定しないと、全く同じところに2つフレームを作るのでわからないかも知れません。タイトルバーをドラッグして、2つになっていることを確認しなさい。
また、setLocation(10, 20) などのメソッドを使って、位置をずらすこともできます。左上の隅が(0,0)、画面の横幅が1024,縦の幅が768ですから、値を大きくしすぎると後で困るので注意。