昨天主管叫我做个菜单,我把题意理解错了,也可以说是没问清楚吧
开始做了个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