countdownプログラムを作ってみよう2
まいど、管理人イガジーです。
プログラミングは習うより慣れ、小さなものをいくつも作る経験を積むことで
自然にマスターできるようになります。
という訳で、Javaプログラミングの演習としてCountDownを作ってゆきます。
Calendarクラスを使うキモの部分の例を示します。
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CountDown {
final long MS2HOUR=1000*60*60;
Calendar c,d;
CountDown() { // constructor
c=new GregorianCalendar();
int cyy=c.get(Calendar.YEAR);
int cmm =c.get(Calendar.MONTH);
int cdd =c.get(Calendar.DAY_OF_MONTH);
long ms=c.getTimeInMillis();
System.out.printf("今日は %d年 %d月 %d日\n", cyy,cmm+1,cdd);
d=new GregorianCalendar(cyy+1,0,1);
long mst=d.getTimeInMillis()-ms;
int hh=(int)(mst/MS2HOUR);
int dd=hh/24;
System.out.printf("今年は、あと %d日(%d時間)\n", dd,hh);
int rh=hh%24;
System.out.printf("今年は、あと %d日と%d時間\n", dd,rh);
}
public static void main(String[] args) {
new CountDown();
}
}
開発環境はEclipseがおすすめです。
これを実行すると、
今日は 2011年 11月 3日
今年は、あと 58日(1403時間)
今年は、あと 58日と11時間
というような文字列がコンソール(Console)に表示されます。
これをGUI(窓的プログラム)にするには次のようにします。
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CountDown {
final long MS2HOUR=1000*60*60;
Calendar c,d;
CountDown() { // constructor
Frame f=new Frame();
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev) {
System.exit(0);
}
});
f.setSize(300,200);
c=new GregorianCalendar();
int cyy=c.get(Calendar.YEAR);
int cmm =c.get(Calendar.MONTH);
int cdd =c.get(Calendar.DAY_OF_MONTH);
long ms=c.getTimeInMillis();
String td=String.format("今日は %d年 %d月 %d日", cyy,cmm+1,cdd);
Label today=new Label(td);
f.add(today, BorderLayout.SOUTH);
d=new GregorianCalendar(cyy+1,0,1);
long mst=d.getTimeInMillis()-ms;
int hh=(int)(mst/MS2HOUR);
int dd=hh/24;
String rd=String.format("今年は、あと %d日", dd);
Label rest=new Label(rd);
f.add(rest, BorderLayout.CENTER);
f.setVisible(true);
}// end of constructor
public static void main(String[] args) {
new CountDown();
}
}
f.addWindowListener(...
の部分は、窓を閉じるボタンで終了するおまじないです。
ちょっと文字が小さいと感じるかもしれませんね。
文字を大きくするには、フォントを指定します。例えば、
Font f1=new Font("SansSerif",Font.PLAIN,20);
rest.setFont(f1);
とすると、Label restの文字を20ポイントのサイズにできます。
20の部分を30にするともっと大きな文字にできます。
また、背景に色をつけるには
rest.setBackground(Color.YELLOW);
などと、Background(背景)を指定します。
文字を大きくして、中央に色をつけた例は、また明日。
countdownプログラムを作ってみよう1
countdownプログラムを作ってみよう2(この記事)
countdownプログラムを作ってみよう3
countdownプログラムを作ってみよう4
countdownプログラムを作ってみよう5
countdownプログラムを作ってみよう6
この記事へのコメントはこちら