j2me的两种菜单使用总结 (三)

2014-11-24 01:34:27 · 作者: · 浏览: 3
ding - menuMaxHeight + i*(fontHeight + padding); //
g.fillRoundRect(0, heightY, menuMaxWidth, fontHeight + padding, 10, 10);
g.setColor(selectedFontColor);
g.drawString(menuOptions[i], menuOptionX, menuOptionY, g.LEFT
| g.TOP);
}
menuOptionY += padding + fontHeight; //画完一个菜单之后坐标下移
}
canvas.flushGraphics(); //将设置的信息全部显示到屏幕
}

}
}

下面是控制桌面显示绘图的类

MenuAction类

package karant.zhan;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.midlet.MIDletStateChangeException;

public class MenuAction extends GameCanvas{

static int width; //屏幕宽
static int height; //屏幕高

static final String[] menuOptions = {"状态设置","聊天记录","好友管理","系统设置","注销","帮助","关于"}; //菜单选项
static int menuChoose; //用于记录按下确定键的菜单位置
private int select = 0; //当前选中的按键的索引值
private boolean menuIsActive = false; //手机是否处在菜单选着状态中,初始化为否
private DrawMenuMIDlet menumidlet; //MIDlet对象
private String leftOption;
private String rightOption;
private Graphics g;
private MenuCanvas menu;
private int LEFT_KEY = -6; //手机左功能键
private int RIGHT_KEY = -7; //手机右功能键

public MenuAction(DrawMenuMIDlet menumidlet) {
super(false);
this.menumidlet = menumidlet;

//获取屏幕的宽高
width = getWidth();
height = getHeight();

setFullScreenMode(true); //设置全屏

menuChoose = 0; //初始化
g = getGraphics(); //获得画笔
leftOption = "菜单"; //设置左边显示菜单
rightOption = "退出"; //设置右边显示退出

menu = new MenuCanvas(leftOption , rightOption, menuOptions); //初始化界面

start(); //初始化屏幕你内容
menumidlet.display.setCurrent(this);
}

public void start(){
clearScreen(); //清屏
menu.drawInactiveMenu(this,g); //菜单初始模版设置
}

public void clearScreen(){
g.setColor(0xedffff); //设置背景颜色
g.fillRect(0, 0, width, height); //填充屏幕
flushGraphics(); //刷新屏幕
}

protected void keyPressed(int keyCode){
if(menuIsActive){ //为真时当进入了菜单选项
if(keyCode == RIGHT_KEY){ //如果按了返回
clearScreen(); //清理屏幕
menu.drawInactiveMenu(this, g);
menuIsActive = false;
}
keyCode = getGameAction(keyCode);
if(keyCode == UP) // 按下向上键
{
select--;
if(select < 0)
select = 0;
menu.drawActiveMenu(this, g, select);
}
else if(keyCode == DOWN) //按下向下键
{
select++;
if(select > 6)
select = 6;

menu.drawActiveMenu(this, g, select); //重新绘制目录选择状态
}
else if(keyCode == FIRE){ //按了确定键
clearScreen(); //清屏
g.setColor(0,0,0); //设置显示颜色
g.drawString("你选择了: " + menuOptions[select], 10, 15, g.LEFT|g.TOP);
menu.drawInactiveMenu(this, g); //返回初始界面
menuIsActive = false;
}
}
else{
if(keyCode == LEFT_KEY){ //当菜单键按下
menu.drawActiveMenu(this, g, select);
menuIsActive = true;
}
else if(keyCode == RIGHT_KEY){ //退出
try {
menumidlet.destroyApp(false);
} catch (MIDletStateChangeException e) {
e.printStackTrace();
}
menumidlet.notifyDestroyed();
}
}
}

}


上传的照片不能用