J2ME Canvas应用示例

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 {
	
	 }


} 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值