www.pudn.com > j2me-jianhun.rar > showContent.java


/*游戏中的框架以及功能类*/ 
import javax.microedition.lcdui.*; 
import java.util.Vector; 
import java.util.Random; 
import java.io.*; 
import javax.microedition.media.*; 
import javax.microedition.rms.*; 
class showContent extends Canvas 
{ 
	int w,h;//屏幕的长和宽 
	int cw;//字体的宽 
	int page,maxPage;//帮助信息中的页码/最大页码 
	int rn;//每行最大字数 
	int maxR;//每屏最多显示的行数 
	int cr;//字体行距 
	int no; 
	int menuN;//菜单选项数 
	String pType;//手机型号 
	public static Random rd=new Random();  
	Font big=Font.getFont(0,0,0); 
	Font small=Font.getFont(0,0,8); 
	Font mini=Font.getFont(0,0,16); 
	Vector about; 
	Vector help; 
	RecordStore sa=null; 
	public final String[] mediaType=new String[]{"audio/x-wav","audio/midi","audio/mpeg"}; 
	public showContent(String phoneType,int wid,int hei,int charw,int charR,int n,String[] aboutText,String[] helpText) 
	{ 
		pType=phoneType; 
		menuN=n; 
		about=new Vector(0,1); 
		help=new Vector(0,1); 
		w=wid;h=hei;cw=charw;cr=charR; 
		rn=w/cw; 
		maxR=(h-20)/cr; 
		page=0; 
		for(int m=0;m0) 
					no--; 
					else 
					no=menuN-1; 
				} 
				else 
				{ 
					if(page>0) 
					page--; 
				} 
				break; 
				case Canvas.DOWN: 
				if(type==1) 
				{ 
					if(no>>1)%n); 
	} 
	/*判断软键*/ 
	public int softKey(int i) 
	{ 
		if(i==-6||i==-21||i==21) 
		return 0; 
		else 
		if(i==-7||i==22||i==-22) 
		return 1; 
		else 
		return -1; 
	}	 
	/*判断某一点是否在屏幕内*/ 
	public boolean inScreen(int x,int y,int ow,int oh) 
	{ 
		if((x+ow)>0&&x0&&y=0?i:-i; 
	} 
	/*MOTO的按键转换*/ 
	public int keyTrans(int i) 
	{ 
		if(pType.equals("MOTO")) 
		{ 
			if(i==-6) 
			return -2; 
			else 
			if(i==-2) 
			return -3; 
			else 
			if(i==-5) 
			return -4; 
			else 
			return i; 
		} 
		else 
		return i; 
	} 
	/*显示暂停*/ 
  public void drawPause(Graphics g1) 
  { 
  	g1.setColor(0); 
  	g1.fillRect(w/2-30,h/2-6,60,30); 
  	g1.setColor(0xffffff); 
  	g1.drawRect(w/2-30,h/2-6,60,30); 
  	g1.drawString("暂停中",w/2-20,h/2,0); 
  }	 
	public void showHelp(Graphics g1,int x,int y,boolean fillBack,int r,int g,int b)//显示帮助 
	{ 
		if(fillBack) 
		{ 
			g1.setColor(r,g,b); 
			g1.fillRect(0,0,w,h); 
		} 
		g1.setFont(small); 
		g1.setColor(0xffffff);		 
		for(int i=0;i= 0) 
//      {                         
    	 g.setColor(topColor);    
    	 g.drawString(str,x-1,y,anchor);    
    	 g.drawString(str,x,y-1,anchor);    
    	 g.drawString(str,x-1,y-1,anchor); 
//      } 
//      if(bottomColor >= 0) 
//      { 
          	 g.setColor(bottomColor);  
          	 g.drawString(str,x+1,y,anchor);  
          	 g.drawString(str,x,y+1,anchor); 
          	 g.drawString(str,x+1,y+1,anchor); 
//      } 
      g.setColor(mainColor); 
      g.drawString(str,x,y,anchor);  
  }	 
	 /*得到指定透明度的一张图的透明图*/ 
	 public Image createARGBImage(Image src,int Alpha) 
	 { 
	  int[] rgb=new int[src.getWidth()*src.getHeight()]; 
	  src.getRGB(rgb,0,src.getWidth(),0,0,src.getWidth(),src.getHeight()); 
	  for(int i=0;i>24&0xff),(byte)(a>>16&0xff),(byte)(a>>8&0xff),(byte)(a&0xff)}); 
//    } 
//     
//    public void saveData(int a,int b) 
//    { 
//    	saveData(int2byte(a),b);   	 
//    } 
//     
//    public void saveData(int[] a,int b) 
//    { 
//    	byte[] temp=new byte[a.length*4]; 
//    	for(int i=0;i