時限タイマーを作ってみよう2

   2012/11/17

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歩進んでいくのが結局は早道です。
お楽しみに。

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)