⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 canvasdrawtest.java

📁 用J2ME实现的手机画布编程(游戏例程之一)
💻 JAVA
字号:
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.io.*;
import javax.microedition.midlet.MIDletStateChangeException;
/*
 * Created on 2005-4-15
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 * @author yuantai1
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class CanvasDrawTest extends MIDlet 
implements CommandListener
{
   private Command exitCommand;
   private Command aCommand0,aCommand1,aCommand2,aCommand3,aCommand4,
           aCommand5;
   private DemoCanvas myCanvas;
  
   public CanvasDrawTest()
   {  exitCommand=new Command("EXIT",Command.EXIT,2);
      aCommand0=new Command("坐标移动演示",Command.SCREEN,3);
      aCommand1=new Command("对齐演示",Command.SCREEN,3);
      aCommand2=new Command("弧线与填充",Command.SCREEN,3);
      aCommand3=new Command("扇形图",Command.SCREEN,3);
      aCommand4=new Command("线条演示",Command.SCREEN,3);
      aCommand5=new Command("图片演示",Command.SCREEN,3);
      myCanvas=new DemoCanvas();
      myCanvas.addCommand(exitCommand);
      myCanvas.addCommand(aCommand0);
      myCanvas.addCommand(aCommand1);
      myCanvas.addCommand(aCommand2);
      myCanvas.addCommand(aCommand3);
      myCanvas.addCommand(aCommand4);
      myCanvas.addCommand(aCommand5);
      myCanvas.setCommandListener(this);
      
   }
	/* (non-Javadoc)
	 * @see javax.microedition.midlet.MIDlet#startApp()
	 */
	protected void startApp() throws MIDletStateChangeException {
		Display.getDisplay(this).setCurrent(myCanvas);
		
	}

	/* (non-Javadoc)
	 * @see javax.microedition.midlet.MIDlet#pauseApp()
	 */
	protected void pauseApp() {
		// TODO Auto-generated method stub

	}

	/* (non-Javadoc)
	 * @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
	 */
	protected void destroyApp(boolean p1)  {
		// TODO Auto-generated method stub

	}

    public void commandAction(Command c,Displayable d)
    { if (c==exitCommand){
    	destroyApp(false);
    	notifyDestroyed();
    }
    else if (c==aCommand0)
    {myCanvas.demoType=0;
     myCanvas.textShow="坐标移动演示";
     myCanvas.repaint();
    }
    else if (c==aCommand1)
    {myCanvas.demoType=1;
    myCanvas.textShow="对齐演示";
    myCanvas.repaint();
    }	
    else if (c==aCommand2)
    {myCanvas.demoType=2;
    myCanvas.textShow="弧线与填充";
    myCanvas.repaint();
    }	
    else if (c==aCommand3)
    {myCanvas.demoType=3;
    myCanvas.textShow="扇形图";
    myCanvas.repaint();
    }	
    else if (c==aCommand4)
    {myCanvas.demoType=4;
    myCanvas.textShow="线条演示";
    myCanvas.repaint();
    }	
    else if (c==aCommand5)
    {myCanvas.demoType=5;
    myCanvas.textShow="图片演示";
    myCanvas.repaint();
    }	
}
    
  public class DemoCanvas extends Canvas{
  	public String textShow="坐标移动演示";
  	public int demoType=0;
  	Image imageLogo;
  	private int[]bRGB={
0xFFFF0000,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,0xFFFF0000,
0x0000FF00,0x0000FF00,0x0000FF00,
0x0000FF00,0xFFFF0000,0x0000FF00,0x0000FF00,0x0000FF00,0x0000FF00,
0x0000FF00,0x0000FF00,0xFFFF0000,
  	};
  	public DemoCanvas()
  	{ 
  		loadImage();
  	}
  	public void loadImage(){
  		try{imageLogo=Image.createImage("/pic.png");
  		}catch(IOException e){
  			System.out.println("load png resourse error"+e.getMessage());
  			imageLogo=null;
  		}
  	}
  		
  		
  public void paint (Graphics g){
  	g.setColor(0xffffff);
  	g.fillRect(0,0,getWidth(),getHeight());
  	g.setColor(0x000000);
  	g.drawString(textShow,0,0,Graphics.TOP|Graphics.LEFT);
  	if(0==demoType)
  		drawType0(g);
  	else if (1==demoType)
  		drawType1(g);
  	else if (2==demoType)
  		drawType2(g);
  	else if (3==demoType)
  		drawType3(g);
  	else if (4==demoType)
  		drawType4(g);
  	else if (5==demoType)
  		drawType5(g);
  	 }
  
  public void drawType0(Graphics g)
  { for (int i=0;i<4;i++)
  {g.translate(20,20);
   g.drawString("坐标(0,0)",0,0,Graphics.TOP | Graphics.LEFT);
   System.out.println("coordinate="+g.getTranslateX()+","+g.getTranslateY());
  }
  }
  
  public void drawType1(Graphics g)
  { g.setColor(0x0000FF);
    g.drawLine(getWidth()/2,0,getWidth()/2,getHeight());
    g.drawLine(0,getHeight()/2,getWidth(),getHeight()/2);
    g.setColor(0x000000);
    g.drawString("TOP_LEFT",getWidth()/2,getHeight()/2,
    		Graphics.TOP|Graphics.LEFT);
    g.drawString("BOTTOM_LEFT",getWidth()/2,getHeight()/2,
    		Graphics.BOTTOM|Graphics.LEFT);
    g.drawString("TOP+RIGHT",getWidth()/2,getHeight()/2,
    		Graphics.TOP|Graphics.RIGHT);
    g.drawString("BOTTOM_RIGHT",getWidth()/2,getHeight()/2,
    		Graphics.BOTTOM|Graphics.RIGHT);
  }
  
  public void drawType2(Graphics g) 
  { g.setColor(0x00FF0000);
    g.drawArc(20,30,30,30,0,90);
    g.drawArc(55,30,30,30,0,-180);
    g.drawArc(90,30,30,30,0,360);
    g.setColor(0x0000FF00);
    g.fillArc(20,65,30,30,0,90);
    g.fillArc(55,65,30,30,0,-180);
    g.fillArc(90,65,30,30,0,360);
  }
  
  public void drawType3(Graphics g)
  { g.setColor(0x00FF0000);
    g.fillArc(40,40,110,110,0,130);
    g.setColor(0x0000FF00);
    g.fillArc(40,40,110,110,130,90);
    g.setColor(0x000000FF);
    g.fillArc(40,40,110,110,220,140);
  }
  public void drawType4(Graphics g)
  {g.setStrokeStyle(Graphics.SOLID);
   g.setColor(0x00000000);
   g.drawLine(2,20,20,40);
   g.drawLine(20,40,50,30);
   g.drawLine(50,30,80,70);
   g.drawLine(80,70,110,60);
   g.setStrokeStyle(Graphics.DOTTED);
   g.setColor(0x00FF0000);
   g.drawLine(2,40,20,30);
   g.drawLine(20,30,50,50);
   g.drawLine(50,50,80,10);
   g.drawLine(80,10,110,40);
  }
  
  public void drawType5(Graphics g)
  { if (null!=imageLogo)
  	g.drawImage(imageLogo,0,20,Graphics.TOP |
  			Graphics.LEFT);
  }
  } 
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -