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

📄 menucontrol.java

📁 java程序五子棋源代码。 java程序五子棋源代码。
💻 JAVA
字号:
package com.tianxia.qipai.view.game.gobang;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.LayerManager;
import javax.microedition.lcdui.game.Sprite;

public class MenuControl {
	private int menustate;
	private Sprite menusprite; //菜单精灵
	private Sprite menudetailsprite;//详细菜单精灵
	private Sprite selectrectsprite;//用户选择提示框精灵
	private int menuheight;  //menu图片的宽度和高度
	private int detailheight; //详细菜单的图片的宽度和高度
	private int tileheight; //详细菜单的单元图片的宽度和高度
	private int statenum;//菜单选项的个数
	private int moveheight; //菜单控件已经移动的垂直距离
	private int movewidth; //菜单控件已经移动的水平距离
	private boolean menuvisible; //菜单是否可见
	private Runtime rt;
	
	
	public MenuControl(Image menuimage,Image detailimage,int tilewidth,int tileheight) {
		super();
		rt = Runtime.getRuntime();
		moveheight = 0;
		movewidth = 0;
		menuheight = menuimage.getHeight();
		detailheight = detailimage.getHeight();
		menusprite = new Sprite(menuimage);
		menuimage = null;
		menudetailsprite = new Sprite(detailimage);
		detailimage = null;
		this.tileheight = tileheight;
		Image rectimage = Image.createImage(tilewidth,tileheight);
		Graphics gra = rectimage.getGraphics();
		gra.setColor(0,0,0);
		gra.drawRect(0,0,tilewidth-1,tileheight-1);//画边框
		rectimage = setImageAlph(rectimage,true);
		selectrectsprite = new Sprite(rectimage);
		rectimage = null;
		rt.gc();
		
		// TODO 自动生成构造函数存根
	}

	public void init(LayerManager lm,int statenum,int mainwidth,int mainheight){
		this.statenum = statenum;
		menustate = 0;
		menusprite.setPosition(0,mainheight-menuheight);
		menudetailsprite.setPosition(0,mainheight-detailheight);
		selectrectsprite.setPosition(0,mainheight-tileheight);
		lm.insert(menusprite,0);
		lm.insert(menudetailsprite,0);
		lm.insert(selectrectsprite,0);
		menusprite.setVisible(true);
		menudetailsprite.setVisible(false);
		selectrectsprite.setVisible(false);
		menuvisible = false;
		lm = null;
		rt.gc();
	}
//	重新调整控件在层中的位置
	public void ResetPosition(int height,int width){
		moveheight = moveheight+height;
		movewidth = movewidth+width; 
		menusprite.setPosition(menusprite.getX()+width,menusprite.getY()+height);
		menudetailsprite.setPosition(menudetailsprite.getX()+width,menudetailsprite.getY()+height);
		selectrectsprite.setPosition(selectrectsprite.getX()+width,selectrectsprite.getY()+height);
		
	}
	
	//重新设置菜单的图片
	public void ReSetImage(Image menuimage,Image detailimage,int tilewidth,int tileheight){
		menuheight = menuimage.getHeight();
		detailheight = detailimage.getHeight();
		menusprite = new Sprite(menuimage);
		menudetailsprite = new Sprite(detailimage);
		this.tileheight = tileheight;
		Image rectimage = Image.createImage(tilewidth,tileheight);
		Graphics gra = rectimage.getGraphics();
		gra.setColor(0,0,0);
		gra.drawRect(0,0,tilewidth-1,tileheight-1);//画边框
		rectimage = setImageAlph(rectimage,true);
		selectrectsprite = new Sprite(rectimage);
		rectimage = null;
		rt.gc();
	}
	
	//重新初始化菜单的位置
	public void ReInit(){
		menusprite.setPosition(menusprite.getX()+movewidth,menusprite.getY()+moveheight);
		menudetailsprite.setPosition(menudetailsprite.getX()+movewidth,menudetailsprite.getY()+moveheight);
		selectrectsprite.setPosition(selectrectsprite.getX()+movewidth,selectrectsprite.getY()+moveheight);
		
	}
	//返回当前菜单的具体菜单项
	public int getmenustate(){
		return this.menustate;
	}
	
	public boolean getvisibleflag(){
		return this.menuvisible;
		
	}

	//不显示详细菜单
	public void toHide(){
		menuvisible = false;
		menusprite.setVisible(true);
		menudetailsprite.setVisible(false);
		selectrectsprite.setVisible(false);
		while(menustate != 0){
			menustate = menustate -1;
			selectrectsprite.setPosition(selectrectsprite.getX(),selectrectsprite.getY()+tileheight);
		}
	}
	
	//显示详细菜单
	public void toShow(){
		menuvisible = true;
		menusprite.setVisible(false);
		menudetailsprite.setVisible(true);
		selectrectsprite.setVisible(true);
	}
	
	//用户选择向上一个菜单项
	public void toUp(){
		if(menustate<statenum-1){
			menustate++;
			selectrectsprite.setPosition(selectrectsprite.getX(),selectrectsprite.getY()-tileheight);
		}
		
	}
	
	//	用户选择向下一个菜单项
	public void toDown(){
		if(menustate>0){
			menustate--;
			selectrectsprite.setPosition(selectrectsprite.getX(),selectrectsprite.getY()+tileheight);
		}
		
	}
	
	
	
	public void setNull(){
		selectrectsprite = null;   //选种框精灵
		menusprite = null;  //主菜单精灵
		menudetailsprite = null; //详细菜单精灵
	}
	
//	将图片变透明(true: 全透明 false:半透明)
	private Image setImageAlph(Image orignImage,boolean alphflag){
		Image tempimage = null;
		int tempwidth= 0;
		int tempheight = 0;
		tempwidth = orignImage.getWidth();
		tempheight = orignImage.getHeight();
		int temprect[]= new int[tempwidth*tempheight];
		orignImage.getRGB(temprect,0,tempwidth,0,0,tempwidth,tempheight);
		orignImage = null;
		for(int i = 0;i<tempwidth*tempheight;i++){
			if(temprect[i]==0xffffffff)   //将白底的图片变透明
				if(alphflag)
					temprect[i]=temprect[i]&0x00ffffff;
				else
					temprect[i]=temprect[i]&0xaaffffff;
		}
		tempimage = Image.createRGBImage(temprect,tempwidth,tempheight,true);
		return tempimage;
	}
}


⌨️ 快捷键说明

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