j2me中 cavans 写的九宫格

 public class NineMidlet extends MIDlet {
    private myCanvas mycanvas;
     private showImage showimg;
    private Display dis;
 
   
    public void startApp() {
  
        dis = Display.getDisplay(this);
        mycanvas = new myCanvas();
        showimg  = new showImage(this);
       mycanvas.setTitle("九宫格");
        showinterface("mycanvas");
    }
   
    public void showinterface(String name){
    
            if(name.equals("mycanvas"))
                dis.setCurrent(mycanvas);
            else if (name.equals("showimg"))
                dis.setCurrent(showimg);
       
     }
  
   
    public void pauseApp() {
    }
   
    public void destroyApp(boolean unconditional) {
    }
  
   
    public class myCanvas extends Canvas {
       public  int eachX,eachY ,distanceX,distanceY;
       private Image[] img  = new Image[9];
       private int focus = 4;
  public myCanvas(){
        eachX = this.getWidth()/3;
        eachY = this.getHeight()/3-4;
        distanceX = eachX /2   ;
        distanceY = eachY /2   ;

       try{
         for(int k = 0; k < 9; k++)
//           int k = 2 ;
              img[k] = Image.createImage("/img"+k+".png");
          }catch(Exception ex){
              ex.printStackTrace();
          }
      
   }
       public void paint( Graphics g ) {
        g.setColor(255,255,255);
        g.fillRect(0 ,0 ,this.getWidth() ,  this.getHeight());
        g.setColor(93, 170, 93);
        drawBack(focus,g);
        for( int i = 0 ; i< 3 ; i++)
         for(int j = 0 ; j < 3 ; j ++){
          g.drawImage( img[i*3+j],  j*eachX+ distanceX ,  i*eachY + distanceY,  Graphics.HCENTER|Graphics.VCENTER) ;
          }
        }
      
      
       protected  void keyPressed( int keyCode ){
           int action = this.getGameAction(keyCode);
           if ( Canvas.UP ==action ){
               if( focus-3 >= 0)
                   focus = focus - 3;
               else focus = focus +6;
           }
           else if ( Canvas.DOWN == action ){
               if( focus+3 <= 8)
                   focus = focus +3;  
                else focus = focus -6 ;
           }
           else if ( Canvas.LEFT == action ){
               if( focus-1 >= 0)
                   focus = focus-1;
                else focus = focus +2 ;
           }
           else if ( Canvas.RIGHT == action ){
               if( focus+1 <= 8)
                   ++focus;
                else focus = focus -2 ;
           }
           else if ( Canvas.FIRE == action ){
                   showinterface("showimg");
           }
           repaint();
  
       }
       protected  void keyRepeated( int keyCode ){
           System.out.println("!!!!!!!!!!!!!!!!!!!!!!");
           int action = this.getGameAction(keyCode);
           if ( Canvas.UP ==action ){
               if( focus-3 >= 0)
                   focus = focus - 3;
               else focus = focus +6;
           }
           else if ( Canvas.DOWN == action ){
               if( focus+3 <= 8)
                   focus = focus +3;  
                else focus = focus -6 ;
           }
           else if ( Canvas.LEFT == action ){
               if( focus-1 >= 0)
                   focus = focus-1;
                else focus = focus +2 ;
           }
           else if ( Canvas.RIGHT == action ){
               if( focus+1 <= 8)
                   ++focus;
                else focus = focus -2 ;
           }
           repaint();
       }
   

 

 

       public void drawBack(int focusTemp ,Graphics gr) {
         switch(focusTemp){
             case(0):
             case(1):
             case(2):
               gr.fillRect(focusTemp*eachX, 0 , eachX , eachY);
               break;
             case(3):
             case(4):
             case(5):
              gr.fillRect(focusTemp%3*eachX, eachY , eachX , eachY);
              break;
             case(6):
             case(7):
             case(8):
              gr.fillRect(focusTemp%3*eachX, 2*eachY , eachX , eachY);
              break;
        }
       } 

    }
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

 

public class showImage extends Canvas implements CommandListener{
    private Image img9 = null;
    private Command backCom ;
    private NineMidlet mid;
   
    /** Creates a new instance of showImage */
    public showImage( NineMidlet mid) {
        this.mid = mid;
        backCom =  new Command("Back", Command.BACK, 1);
        this.addCommand(backCom);
        try{
        
              img9 = Image.createImage("/img9.png");
          }catch(Exception ex){
              ex.printStackTrace();
          }
        this.setCommandListener(this);
       
       
    }
   
    public void paint(Graphics g){
        g.setColor(255,255,255);
        g.fillRect(0 ,0 ,this.getWidth() ,  this.getHeight());
        g.drawImage( img9, this.getWidth()/2  ,  this.getHeight()/2 ,  Graphics.HCENTER|Graphics.VCENTER) ;
    }
    protected  void keyPressed( int keyCode ){
        int action = this.getGameAction(keyCode);
        
    }
   
     public void commandAction(Command c, Displayable s) {
         if (c == backCom)
              mid.showinterface("mycanvas");
     }
   
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值