/* iアプリ, MIDP での日時の扱い Time-stamp: "2004/11/05 Fri 07:08 hig" Saburo Higuchi 2004 http://www.math.ryukoku.ac.jp/~hig/ プログラム解説等 http://sparrow.math.ryukoku.ac.jp/~hig/course/juniors_2004/06/ */ import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.Calendar; // カレンダーを使う public class ClockSample extends MIDlet { /** 起動するときに呼ばれる メソッド. 必須. */ public void startApp(){ ClockCanvas cc = new ClockCanvas(this); Display.getDisplay(this).setCurrent(cc); } public void pauseApp(){} public void destroyApp(boolean unconditional){} } class ClockCanvas extends Canvas implements Runnable{ ClockSample parent; int positionx; int positiony; ClockCanvas(ClockSample parent){ this.parent=parent; positionx=0; positiony=getHeight()/2; Thread th = new Thread(this); th.start(); } public void paint(Graphics g){ g.setColor(( (255<<16) + (255<<8) + (255)) ); g.fillRect(0,0,getWidth(),getHeight()); // 画面を消す g.setColor(0 ); // Calendar 使います. 上で import java.util.Calendar; が必要. // API は DoJa/MIDP API でなく, CLDC API の中にあります. Calendar c = Calendar.getInstance(); g.drawString( c.get(Calendar.HOUR) + "時" + c.get(Calendar.MINUTE) + "ふん" + c.get(Calendar.SECOND) + "秒くらいだよん" , positionx,positiony ,Graphics.LEFT|Graphics.BOTTOM ); } /** スレッドが start されると このメソッドに制御が移る */ public void run(){ while(true){ // 無限ループ // 定期的に repaint する. try { Thread.sleep(1000); // 1000ミリ秒休む. } catch ( Exception e ) { // 割り込みがあっても何もしない. } repaint(); } } } /* Local Variables: mode: java End: */