`
hainianqinas
  • 浏览: 82847 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江
社区版块
存档分类
最新评论

J2ME Canvas应用示例

    博客分类:
  • J2ME
 
阅读更多
package com;
import java.io.IOException;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.Sprite;

/**
 * @author 徐彬
 * @see 画布(Canvas) 画笔(Graphics)--> 画图形
 */
public class CanvasTest extends MIDlet{ //这是J2ME手机程序主入口类
    Display dis;
    private acanvas mc=new acanvas(this);//创建内部类acanvas的对象,并将自身对象传入。
   
	 public CanvasTest() {
		 //构造函数
	 }	
	
   /**
 * @author Administrator
 *	内部类
 *	手机应用程序界面设计:Canvas类,相当于画布
 */
class acanvas extends Canvas  implements  CommandListener
	//在这里需要实现CommandListener 事件监听接口
   {	  
	   //menu弹出菜单  将help和exit按钮包含进菜单中
	   private Command resumeCmd= new Command("", Command.SCREEN, 5);
	   private Command help = new Command("帮助",Command.SCREEN,5);
	   private Command back = new Command("回退",Command.SCREEN,2);
	   private Command exit = new Command("退出",Command.SCREEN,5);
	   private TextBox helpText= new TextBox("标题","帮助内容",200,0);
       public acanvas(CanvasTest canvasTest){
    	   repaint();//加载页面组件
    	   addCommand(resumeCmd);
    	   addCommand(help);
    	   addCommand(exit);
    	   helpText.addCommand(back);//将back回退按钮放入帮助页面(第2个页面)中
    	   setCommandListener(this);//有效化按键事件
    	   helpText.setCommandListener(this);
       }      
	 protected void paint(Graphics g) {	    	
	    	try {
	    		//画图片
				g.drawImage(Image.createImage("/image/bj.jpg"), 160, 0,Graphics.TOP|Graphics.HCENTER);  
				//高级画图片~Sprite旋转图片 
				Image img=Image.createImage("/image/dns.JPG");	
				g.drawRegion(img, 0, 0, img.getWidth(), img.getHeight(), Sprite.TRANS_MIRROR_ROT90, 169, 200, Graphics.TOP|Graphics.HCENTER);
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}  
		    g.setColor(200,33,134);               //为下边的图形设置颜色
		    g.setStrokeStyle(Graphics.DOTTED);    //设置为虚线
		    g.drawLine(19, 53, 45, 35);           //划线
		    g.setStrokeStyle(Graphics.SOLID);     //设置为实线
		    g.drawRect(59, 45, 45, 35);           //方角矩形 
		    g.drawRoundRect(120, 45, 45,35,10,10);//圆角矩形 
		    
		    g.setColor(240,33,234);               //为下边的图形设置颜色
		    g.fillRoundRect(120, 45, 45,35,10,10);//填充圆角矩形
		    g.drawArc(19, 110, 20, 30, 0, 270);   //画弧线
		    
		    g.setColor(54, 34, 100);              //为下边的图形设置颜色
		    g.fillArc(19, 110, 20, 30, 0, 270);   //填充圆
		    g.fillTriangle(50, 110, 40, 150, 90, 150);//填充三角
		    
		    g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE)); //设置字体
		    g.drawString("叼啊",110,110, Graphics.TOP|Graphics.LEFT);    //划文本
		    g.drawString("fuck",this.getWidth()/2,this.getHeight()/2, Graphics.TOP|Graphics.HCENTER);
	 }
    
	 
	 void goHelp(){
		 dis.setCurrent(helpText);//跳转到helpTest界面(第2个界面 )
	 }
	 void  goBack(){
		 	
		 dis.setCurrent(mc);//跳转到初始界面
	 }
	 public void commandAction(Command command, Displayable displayable) {
		
		  if(command == help){
			  //如果按键事件为help
			  goHelp();
		  }else if(command == back){
			  //如果按键事件为back
			  goBack();
		  }else if(command == exit){
			//如果按键事件为exit
		    try {
				destroyApp(false);//必要的两个退出方法
			    notifyDestroyed();
			} catch (MIDletStateChangeException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		  
		  }
     }
	 	
  }

	protected void startApp() throws MIDletStateChangeException {
		  
	    dis=Display.getDisplay(this);
	    mc.setTitle("mycanvas");
	    dis.setCurrent(mc);//初始化界面,初始显示的是mc界面
	
	}
	 protected void pauseApp() {
		 		
	 }
	 protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
	
	 }


} 


 

分享到:
评论
2 楼 xiaoqing20 2010-03-31  
g.drawString("叼啊",110,110, Graphics.TOP|Graphics.LEFT);    //划文本  
            g.drawString("**",this.getWidth()/2,this.getHeight()/2, Graphics.TOP|Graphics.HCENTER);  
1 楼 orz.chang 2010-03-10  
71/72行的代碼實在是太牛咯。

相关推荐

Global site tag (gtag.js) - Google Analytics