我的两个文件内容如下:
==========SnakeQuad .java=============
package SnakeQuad;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class SnakeQuad extends MIDlet {
private MainMenu mmenu;
public SnakeQuad() {
mmenu=new MainMenu();
}
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 {
Display.getDisplay(this).setCurrent(mmenu);
}
}
===========MainMenu.java=============
package SnakeQuad;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import com.nokia.mid.ui.FullCanvas;
public class MainMenu extends FullCanvas {
private int Choose = 1;
private int Width = getWidth();
private int Height = getHeight();
public int getChoose() {
if (Choose <= 1)
Choose = 1;
if (Choose >= 3)
Choose = 3;
return Choose;
}
public void setChoose(int choose) {
Choose = choose;
}
protected void paint(Graphics graphics) {
graphics.setColor(255, 0, 0);
graphics.setFont(Font.getDefaultFont());
graphics.drawString("新的游戏", Width / 2, Height / 5, Graphics.HCENTER
| Graphics.TOP);
graphics.drawString("读取档案", Width / 2, Height / 5 * 2, Graphics.HCENTER
| Graphics.TOP);
graphics.drawString("退出游戏", Width / 2, Height / 5 * 3, Graphics.HCENTER
| Graphics.TOP);
graphics.setColor(255, 0, 0);
graphics.drawRect(Width / 2 - 45, Height / 5 * getChoose(), 90, 15);
}
protected void KeyPressed(int KeyCode) {
int action = getGameAction(KeyCode);
switch (action) {
case UP:
setChoose(getChoose() - 1);
break;
case DOWN:
setChoose(getChoose() + 1);
break;
}
repaint();
}
}
===============================
用的FullCanvas,
我的问题是主菜单显示出来以后,按上下键,选择框是不移动的。
貌似没有调用KeyPressed方法。
谁能帮我看看,分析一下。谢谢
==========SnakeQuad .java=============
package SnakeQuad;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class SnakeQuad extends MIDlet {
private MainMenu mmenu;
public SnakeQuad() {
mmenu=new MainMenu();
}
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 {
Display.getDisplay(this).setCurrent(mmenu);
}
}
===========MainMenu.java=============
package SnakeQuad;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import com.nokia.mid.ui.FullCanvas;
public class MainMenu extends FullCanvas {
private int Choose = 1;
private int Width = getWidth();
private int Height = getHeight();
public int getChoose() {
if (Choose <= 1)
Choose = 1;
if (Choose >= 3)
Choose = 3;
return Choose;
}
public void setChoose(int choose) {
Choose = choose;
}
protected void paint(Graphics graphics) {
graphics.setColor(255, 0, 0);
graphics.setFont(Font.getDefaultFont());
graphics.drawString("新的游戏", Width / 2, Height / 5, Graphics.HCENTER
| Graphics.TOP);
graphics.drawString("读取档案", Width / 2, Height / 5 * 2, Graphics.HCENTER
| Graphics.TOP);
graphics.drawString("退出游戏", Width / 2, Height / 5 * 3, Graphics.HCENTER
| Graphics.TOP);
graphics.setColor(255, 0, 0);
graphics.drawRect(Width / 2 - 45, Height / 5 * getChoose(), 90, 15);
}
protected void KeyPressed(int KeyCode) {
int action = getGameAction(KeyCode);
switch (action) {
case UP:
setChoose(getChoose() - 1);
break;
case DOWN:
setChoose(getChoose() + 1);
break;
}
repaint();
}
}
===============================
用的FullCanvas,
我的问题是主菜单显示出来以后,按上下键,选择框是不移动的。
貌似没有调用KeyPressed方法。
谁能帮我看看,分析一下。谢谢