GUIアプリを作成する場合の重要なポイントは,
- GUI上にどんな部品がおけるか?
- GUI上の部品等の配置をどうするか?
- イベント(ユーザーからの入力)をどう受け取るか?
- 受け取ったイベントをもとに, どのような計算処理等を行ったり, GUIの見た目をどのように変更するか?
です.これらの疑問を胸に以下の説明を見てください.
<GUIをゼロから作るのは面倒>
<AppletのサブクラスでGUI作成>
- 画面上にGUI領域(Window)を確保する
- 必要な部品を配置する.
- マウス等によるユーザー入力(イベント)を受け取る.
- イベントを受けた場所,状態によって振る舞いを変える.
- Windowが隠れたら再描画する……
<Mainがない?!>
- GUIを作成する場合の面倒な処理は既に実装されているクラス.
- ユーザーは必要なメソッドを再定義(オーバーライド)するだけでGUIを作成が可能.
- Mainメソッドをユーザーが書く必要がない.
<Applet作成の手順><簡単な例1: 文字を直に書く>
- GUIの外枠を決めるHTMLファイルを書く.
- Appletクラスのサブクラスとして自分のGUIを実装する.
- コンパイル( .java → .class)
- appletviewer というプログラムでGUIを実行.
- 単に画面に“Shinshu Okinawa” と描くだけ.
1.ソースコード<Graphicsクラス>
import java.applet.*; import java.awt.*; public class DrawString extends Applet{ public void paint(Graphics g){ g.drawString("Shinshu Okinawa.", 10, 20); } }2.htmlファイル
- たったこれだけ.
Appletに定義されいるpaintメソッドを再定義
<applet code="DrawString" width=200 height=100> </applet>3.コンパイル&実行
- これまた,たったこれだけ.
- 実際には,HTMLの正式なヘッダなどが必要だが,まぁ,あまり気にしなくてよい.
4.隠れても再描画する
- 詳しくはマニュアル等参照.
- 直感的には,画面に描画するための筆やハケの類と考えて良い.
- 文字列,円弧,多角形,イメージなどを描くことができる.
<例2: 色々書いてみる.>
ソースコード
import java.applet.*; import java.awt.*; public class DrawMisc extends Applet{ public void paint(Graphics g){ g.drawLine(50, 80, 100, 20); g.drawArc(20, 20, 30, 60, 30, 210); g.drawRect(20, 20, 30, 60); g.drawString("Sinshu", 50, 20); } }
<Appletのライフサイクル>
Appletが実際に画面に表示され,消滅するまでは,以下のような順番で特定のメソッドが呼び出されることが決まっています.
<ライフサイクルの制御例>
<例3: イメージを書く>
1.ソースコード
import java.applet.*; import java.awt.*; // import java.net.*; public class DrawImage extends Applet{ Image img=null; public void init(){ img=getImage(getDocumentBase(), "buil.gif"); } ↑ Htmlファイルが置かれているURL public void paint(Graphics g){ if(img!=null) g.drawImage(img, 20, 10, this); g.drawLine(20, 10, 200, 100); } }2.実行例
実習用の各種ファイルはここから参照&ダウンロード!
2003年10月22日 6:20 更新