<%@ page contentType="text/html; charset=gb2312"%> J2ME手机游戏:Canvas类基本绘图实例
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
J2ME手机游戏:Canvas类基本绘图实例
     发布者: 发布时间:2008-03-12

 /×
      几何形状图片绘制
    ×/
    import javax.microedition.midlet.×;
    import javax.microedition.lcdui.×;
    public class canvasDemo4 extends MIDlet implements CommandListener
    {
       Display display;
       //声明List清单
       List    list;
       //声明查询选择清单指针变量
       int     viewType;
       Command okCommand;
       Command exitCommand;
       canvasDraw canvasdraw;
       public canvasDemo4()
       {
          canvasdraw=new canvasDraw();
          display=Display.getDisplay(this);
          list=new List("线条几何形状绘制清单", List.IMPLICIT);
          okCommand = new Command("确认", Command.OK, 2);
          exitCommand = new Command("离开", Command.EXIT, 2);
          list.append("绘制线条", null);
          list.append("绘制矩形", null);
          list.append("绘制圆角矩形", null);
          list.append("绘制弧形", null);
          list.append("绘制三角形", null);
          list.addCommand(okCommand);
          list.addCommand(exitCommand);
          list.setCommandListener(this);
       }
       public void startApp()
       {
          display.setCurrent(list);
       }
       public void pauseApp(){}
       public void destroyApp(boolean unconditional){}
       public void commandAction(Command cmd, Displayable disp)
       {
          //取得清单选取的list项目
          viewType=list.getSelectedIndex();
          if (cmd == okCommand)
          {
             display.setCurrent(canvasdraw);
          }
           else if(cmd == exitCommand){
             destroyApp(false);
             notifyDestroyed();
          }
       }
       class canvasDraw extends Canvas implements CommandListener
       {
          int    gameaction=0;
          Image  handImage;
          int    changeSD=1;

 int    changeFull=0;
          Command backCommand;
          public canvasDraw()
          {
             try{
                 handImage=Image.createImage("/hand.png");
             }catch(Exception ex){}
             backCommand = new Command("返回", Command.BACK, 1);
             addCommand(backCommand);
             setCommandListener(this);
          }
        
          public void keyPressed(int keyCode)
          {
             gameaction=getGameAction(keyCode);
             switch(gameaction)
             {
                //按左、右键选择线条状态
                case LEFT:
                     changeSD=1;
                     break;
                case RIGHT:
                     changeSD=3;
                     break;
                //按上、下键选择是否填充形状
                case UP:
                     changeFull=0;
                     break;
                case DOWN:
                     changeFull=1;
                     break;
             }
             repaint();
          }
          public void paint(Graphics g)
          {
             //设置绘制颜色
             g.setColor(0xffffff);
             //绘制一个手机全屏幕填充颜色的矩形
             g.fillRect(0,0,getWidth(),getHeight());
             //设置下列显示画面的颜色
             g.setColor(0);
             //选择要显示图形是实线(DOLID)或虚线(DOTTED)
             if(changeSD==1)
                g.setStrokeStyle(Graphics.SOLID);
             else
                g.setStrokeStyle(Graphics.DOTTED);
             //选择要绘制的种类
             if(viewType==0)
             {
                g.drawString("绘制线条", getWidth()/2, 5, Graphics.HCENTER |
    Graphics.TOP);
                //绘制一条直线

      g.drawLine(getWidth()/4,100,3×getWidth()/4,100);
             }
              else if(viewType==1){
                g.drawString("绘制矩形", getWidth()/2, 5, Graphics.HCENTER |
    Graphics.TOP);
                if(changeFull==0)
                   //绘制一个矩形
                   g.drawRect(getWidth()/4,100,getWidth()/2,40);
                else
                   //绘制一个填充的矩形
                   g.fillRect(getWidth()/4,100,getWidth()/2,40);
             }
              else if(viewType==2){
                g.drawString("绘制圆角矩形", getWidth()/2, 5, Graphics.HCENTER |
    Graphics.TOP);
                if(changeFull==0)
                  //绘制一个圆角矩形
                  g.drawRoundRect(getWidth()/4,100,getWidth()/2,40,30,40);
                else
                  //绘制一个圆角填充矩形
                  g.fillRoundRect(getWidth()/4,100,getWidth()/2,40,30,40);
             }
              else if(viewType==3){
                g.drawString("绘制弧形", getWidth()/2, 5, Graphics.HCENTER |
    Graphics.TOP);
                if(changeFull==0)
                  //绘制一个弧形形状
                  g.drawArc(getWidth()/3,100,40,50,0,150);
                else
                  //绘制一个填充的弧形形状
                  g.fillArc(getWidth()/3,100,40,50,0,150);
             }
              else {
    


//绘制一个填充三角形形状
                g.drawString("绘制三角形", getWidth()/2, 5, Graphics.HCENTER |
    Graphics.TOP);
                g.fillTriangle(50,80,80,60,100,120);
             }
             //依照选择的线条状况
             if(viewType!=4)
             {
                g.drawString("实线", getWidth()/4, 50, Graphics.HCENTER | Graphics.TOP);
                g.drawString("虚线", 3×getWidth()/4, 50, Graphics.HCENTER | Graphics.TOP);
                g.drawImage(handImage, changeSD×getWidth()/4, 60, Graphics.HCENTER |
    Graphics.TOP);
             }
           
             //选择几何形状是否要填充
             if(viewType!=0 && viewType!=4)
             {
               g.drawString("几何形状", getWidth()/2, 30, Graphics.HCENTER | Graphics.TOP);
               g.drawString("填充几何形状", getWidth()/2, 70, Graphics.HCENTER |
    Graphics.TOP);
               g.drawImage(handImage, getWidth()/2, 40+changeFull×40, Graphics.HCENTER |

 Graphics.TOP);
             }
         }
         public void commandAction(Command cmd, Displayable disp)
         {
             //设定返回List清单
             if (cmd == backCommand)
                display.setCurrent(list);
         }
       }
    }

    运行结果如图6-15所示。

       
图6-15



(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
jsp中动作的使用
jsp中动作的使用
XML安全相关
用Spring的Resource管理SQL的XML配置文件
祝贺Guice拿了Jolt Award
祝贺Guice拿了Jolt Award
 
最近评论:
        
鍥炲
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号