/* iアプリ, MIDP の Canvas の使い方の例 Time-stamp: "2003/10/05 Sun 15:07 hig" Saburo Higuchi 2003 http://www.math.ryukoku.ac.jp/~hig/ プログラム解説等 http://sparrow.math.ryukoku.ac.jp/~hig/course/juniors_2003/02/ */ import com.nttdocomo.ui.*; /** Canvas の例(イベント処理なし) */ public class CanvasSample extends IApplication { /** 起動するときに呼ばれる メソッド. 必須. */ public void start (){ MyCanvas mc = new MyCanvas(this); Display.setCurrent(mc); } /* 自分で好きなだけメソッドを定義してよい */ } /** Canvas を用いたグラフィックス */ class MyCanvas extends Canvas { // MyCanvas という名前は自分で決められる. IApplication parent; // この Canvas を呼び出したクラス public MyCanvas(IApplication ap){ this.parent=ap; // これは樋口の癖. 必須ではない. } /** 描画. このメソッドで描きたいものを描く */ public void paint(Graphics g){ int width=getWidth(); // 画面の横幅. int height=getHeight(); // 画面の高さ // 座標系は左上が (0,0), 右下が (width-1,height-1). J2SE と同じ // 画面を消去. 白い四角形を描く. MIDP の場合, RGB値で設定 g.setColor(Graphics.getColorOfName(Graphics.WHITE) ); g.fillRect(0,0,width,height); // 左上 (0,0). // 線を引く g.setColor(Graphics.getColorOfName(Graphics.BLUE) ); g.drawLine(0,0,20,20); //(0,0) から (20,20) に線を引く g.setColor(Graphics.getColorOfName(Graphics.RED) ); // DoJa では多角形が描ける int x[]={width-20,width-20,width-40,width-40,width-30}; // 4頂点のx座標 int y[]={height-30,height-60,height-60,height-30,height-20};// 4頂点のy座標 g.fillPolygon(x,y,5); // この使い方はJ2SEと同じ // しかし円は描けない. // 液晶画面のサイズを表示 Font font=Font.getDefaultFont(); g.setFont(font); // MIDP では最後に alignment を指定する引数がある. g.drawString(width + "x" + height, 0, height-1 +0 ); } } /* Local Variables: mode: java compile-command: "make -k PLAT=DOJA CanvasSample.java" End: */