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

2014-11-24 01:34:27 · 作者: · 浏览: 2

昨天主管叫我做个菜单,我把题意理解错了,也可以说是没问清楚吧

开始做了个command的菜单,后来他说要用canvas画,又做了一个非常难看的,被打了回来,看了别的软件的菜单样式,重新写了一个

1.command菜单

菜单代码如下:

package karant.zhan;

import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class MenuDemo extends MIDlet implements CommandListener{

Display display;
Form form;
Alert alert;
private Command backCommand = new Command("Back", Command.BACK, 1);
private Command exitCommand = new Command("Exit", Command.EXIT, 60);
private Command ebestCommand = new Command("Ebest", Command.SCREEN, 22);
private Command jordanCommand = new Command("Jordan", Command.OK, 23);
private Command whutCommand = new Command("Whut", Command.SCREEN, 24);
private Command y33Command = new Command("ye33", Command.SCREEN, 25);

public MenuDemo() {
display = Display.getDisplay(this);
Form form = new Form("Menu Test");
form.addCommand(exitCommand);
form.addCommand(ebestCommand);
form.addCommand(backCommand);
form.addCommand(jordanCommand);
form.addCommand(whutCommand);
form.addCommand(y33Command);
form.setCommandListener(this);
alert = new Alert("");
display.setCurrent(form);
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {


}

public void commandAction(Command c, Displayable d) {

if(c == ebestCommand)
{
alert.setString(" Hello Ebest");
display.setCurrent(alert);

}
else if(c == whutCommand)
{
alert.setString(" Hello Whut");
display.setCurrent(alert);
}
else if(c == y33Command)
{
alert.setString(" Love y33");
display.setCurrent(alert);
}
else if(c == jordanCommand)
{
alert.setString(" My Ido Jordan");
display.setCurrent(alert);
}
else if(c == exitCommand)
{
try {
destroyApp(false);
} catch (MIDletStateChangeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
notifyDestroyed();
}

}

}


上传图片不能用

2.下面是用canvas画的,焦点效果要好点

MIDlet类代码如下:

package karant.zhan;

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class DrawMenuMIDlet extends MIDlet {

MenuAction menuAction;
Display display;

public DrawMenuMIDlet() {
display = Display.getDisplay(this);
menuAction = new MenuAction(this);
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

}

下面是绘制菜单的类MenuCanvas

package karant.zhan;

import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;

public class MenuCanvas {

private String leftOption;
private String rightOption