一、
二、代码
Midlet.java
package test1;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Midlet extends MIDlet {
privateDisplay display;
private MIDPCanvas midpcanvas;
publicMidlet(){
display=Display.getDisplay(this);
midpcanvas=newMIDPCanvas(this);
}
public voidstartApp() {
display.setCurrent(midpcanvas);
}
publicvoid pauseApp() {
}
public voidexitApp(){
destroyApp(true);
notifyDestroyed();
}
publicvoid destroyApp(boolean unconditional) {
}
}
MIDPCanvas.java
package test1;
import javax.microedition.lcdui.*;
public class MIDPCanvas extends Canvas implements CommandListener{
privateString direction,keyname;
privateMidlet midlet;
privateCommand cmd_exit;
publicMIDPCanvas(Midlet midlet ) {
try {
// Set up this canvas to listen to commandevents
direction=new String("请按任意键");
keyname=new String("");
this.midlet=midlet;
cmd_exit=new Command("退出",Command.EXIT,1);
addCommand(cmd_exit);
setCommandListener(this);
} catch(Exception e) {
e.printStackTrace();
}
}
public voidpaint(Graphics g) {
g.setColor(0, 0, 0);
g.fillRect(0,0,getWidth(), getHeight());
g.setColor(0, 255, 0);
g.drawString(direction,0,0,Graphics.TOP|Graphics.LEFT);
g.drawString(keyname,20,20,Graphics.TOP|Graphics.LEFT);
}
protected void keyPressed(int keyCode) {
switch (getGameAction(keyCode)){
case Canvas.UP:
direction="上";
break;
caseCanvas.LEFT:
direction="左";
break;
caseCanvas.RIGHT:
direction="右";
break;
case Canvas.DOWN:
direction="下";
break;
case Canvas.FIRE:
direction="开火";
break;
default:
direction="请按任意键";
break;
}
keyname=getKeyName(keyCode);
repaint();
}
protected void keyReleased(int keyCode) {
}
protected void keyRepeated(int keyCode) {
}
protected void pointerDragged(int x, int y){
}
protected void pointerPressed(int x, int y){
}
protected void pointerReleased(int x, int y){
}
public voidcommandAction(Command command, Displayable displayable) {
if (command==cmd_exit){
midlet.exitApp();
}
}
}