GUI
Java の GUI (graphical user interface) は awt (abstract window
toolkit) と呼ばれる道具を使いこなす必要があります。
けっして使いやすい道具とはいえませんが、機種に依存しない形で記述できる
メリットもあります。
単純な button
次の program は画面に一個だけ button を表示する applet です。
import java.awt.*;
import java.applet.Applet;
public class TestButton extends Applet {
Button bttn;
public void init(){
bttn = new Button("This is a button.");
add(bttn);
}
}
ここでは、
- Button を定義して new Button()、
- 画面に張り付けている add する
だけですから、この button を押しても何も起こりません。
Button を押したら、何かの動作をさせるようにするには、そのための記述が必
要になります。
単純な event 処理
Button が押された回数を表示する applet です。
Source の該当する部分は
以下の通りです。
public boolean action(Event e, Object o) {
String label = o.toString();
if (e.target instanceof Button) {
if (label.equals("Push Me")) {
++mousecnt;
repaint();
}
}
return true;
}
}
ここでは、Push Me という button が押されたら、mousecnt を 1 増やして
repaint() method を呼び出しています。
単純な text field
画面の中央に user からの type を受け付ける text field を張り付けた
applet です。
Source を見れば分かりますが、
この program も、たとえ何が入力されても、なにもしない applet です。
複数の container を配置する
次の例は、
- 上に 3 つの button
- 真ん中に 3 つの Radio button
- 下に 2 つの text field
を配置した例です。
Button やら label やら、あるいは他の window を含めた container を
配置するために Layout manager が用意されています。
source
FlowLayout, BorderLayout, GridLayout の 3 つの sample program
を見てみましょう。
FlowLayout は component を左から右に配置します。
source
BorderLayout は、レイアウトの位置を、東西南北で指定します。
source
GridLayout は、行数と列数を指定して component を格子上に配置する
source
入力 Event 処理
上記の Layout managerによってさまざまな components を
画面上に張り付けることができますが、今度は、それらを利用することを考え
ます。
以下の applet に対して、mouse cursor を入れたり出したり、click したり、
double click したりしてください。
source
Java では、上記のように、event を override することによって
望む動作を実現します。
次の java file と html file とを自分のところに持っていって
appletviewer を実行させてみましょう。
javac や appletviewer の使い方は大丈夫ですか?
- choice buttonと checkbox button
- テキストフィールドの例
- テキストエリアの例
最後に応用例を 2 つほど挙げておきます。
Font の種類や大きさを変えることができる applet です。
source
Java で「お絵書きツール」が作れます。