J2ME road——J2ME实现Canvas

package src;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

import java.util.Random;

public class CanvasTest extends MIDlet implements CommandListener
{
 private MyCanvas myCanvas;
 private Command quit;
 private Command redraw;
 
 
 class MyCanvas extends Canvas
 {
  private Random randomizer = new Random();
  
  private int getRand(int min, int max)
  {
   int r = Math.abs(randomizer.nextInt());
   return (r %(max - min)) + min ;
  }

  protected void paint(Graphics g)
  {
   // TODO 自动生成方法存根
   for (int i=10 ; i>0; i--)
   {
    g.setGrayScale(getRand(1, 254));
    g.fillRect(0, 0, i*(getWidth()/10), i*(getHeight()/10));
   }
  }
  
 }
 
 public CanvasTest()
 {
  myCanvas = new MyCanvas();
  
  quit = new Command("Quit", Command.EXIT,2);
  myCanvas.addCommand(quit);
  
  redraw = new Command("Redraw", Command.SCREEN,1);
  myCanvas.addCommand(redraw);
  
  myCanvas.setCommandListener(this);
 }
 
 
 protected void destroyApp(boolean b) throws MIDletStateChangeException
 {
  // TODO 自动生成方法存根
  
 }

 protected void pauseApp()
 {
  // TODO 自动生成方法存根
  
 }

 protected void startApp() throws MIDletStateChangeException
 {
  // TODO 自动生成方法存根
  Display.getDisplay(this).setCurrent(myCanvas);
 }

 public void commandAction(Command c, Displayable d)
 {
  // TODO 自动生成方法存根
  try
  {
   if(c==redraw)
   {
    myCanvas.repaint();
   }
   if(c==quit)
   {
    destroyApp(true);
    notifyDestroyed();
   }
  }
  catch (MIDletStateChangeException e)
  {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值