時限タイマーを作ってみよう2
GUI(グラフィックユーザインタフェース)のプログラミングは
画面づくりと、各コンポーネント(ボタン等)の処理(Listener)登録です。
毎度、管理人イガジーです。
という訳で、何はともあれ時限タイマーの画面を作りましょう。
元になる大枠は、Frame を使います。
public class VTimer1 {
Frame f;
VTimer1(){
f=new Frame("Set Timer ");
f.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
f.setSize(280,120);
f.setVisible(true);
}
public static void main(String[] args) {
new VTimer1();
}
}
これで枠が表示されて、Windowの窓を閉じる(x)で終了します。
このFrameの中に、文字(Label),文字枠(TextField),ボタン(Button)
などを登録します。
どこにどう並べるかの「配置」の方法は、いくつかありますが
ここでは、GridLayout と FlowLayout を使います。
まず、
f.setLayout(new GridLayout(2,1));
として、2行(1列)に分けます。それぞれに、Panel p0, p1 を割り当て(格納し)て
p0には、Label(“表示文”)と、TextFiled(文字入力枠)を
p1には、TextField(時間数値入力用)と、choice(分/秒選択)、ボタン(Start, End)を
それぞれ格納します。
実際のコード(プログラム)は次のような感じです。
import java.awt.Button;
import java.awt.Choice;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class VTimer1 {
Frame f;
TextField msg,delay;
Button startbtn;
Choice unit;
VTimer1(){
f=new Frame("Set Timer 1");
f.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
f.setLayout(new GridLayout(2,1));
Panel p0=new Panel();
p0.add(new Label("表示文"));
msg=new TextField("時間です",20);
p0.add(msg);
Panel p1=new Panel();
delay=new TextField(" 3",3);
p1.add(delay);
unit=new Choice();
unit.add("分後");
unit.add("秒後");
p1.add(unit);
startbtn=new Button(" Start ");
p1.add(startbtn);
p1.add(new Label(" ")); // スペーサ
Button btn_end=new Button("End");
p1.add(btn_end);
f.add(p0);
f.add(p1);
f.setSize(280,120);
f.setVisible(true);
}
public static void main(String[] args) {
new VTimer1();
}
}
表示だけのハリボテです。ボタンをクリックしてもまだ何も動作しません。
でも、「分後/秒後」の切替えはそれっぽく動きます。
AWTという名の部品(Component)を使っていますが Swingが好みの方は、
Frame → JFrame, Label → JLabel, TextField → JTextField,Button → JButton
など、J付きのComponentにすればOKです。
choiceだけは、ちょっと違って(JChoiceはありません)JComboBoxになります。
次は、これに処理を入れるわけですが、その前に(明日は)
もうひとつメッセージを表示する窓(Frame)も作りましょう。
[Start]をクリックしたら、その窓が表示されるようにするのです。
こうやって、1歩1歩進んでいくのが結局は早道です。
お楽しみに。
この記事へのコメントはこちら