Java2ME游戏画布——如何接收所有按键事件?
你好Java2ME游戏画布——如何接收所有按键事件?,java,java-me,midp,lcdui,Java,Java Me,Midp,Lcdui,你好 我正在编写简单的j2me计算器。使用GameCanvas类作为我的界面的基础。我需要处理numpad键事件和游戏相关事件(例如向上,向下,开火,等等)来移动光标。问题是emulator和我的索尼爱立信都没有收到一些与numpad和游戏相关的事件。例如,我得到软1,发送,2,4,星号按键事件,但不接收1,3,左,右,向上,向下,开火事件 class CalculatorCanvas extends GameCanvas { public CalculatorCanvas() thro
我正在编写简单的j2me计算器。使用GameCanvas类作为我的界面的基础。我需要处理numpad键事件和游戏相关事件(例如向上,向下,开火,等等)来移动光标。问题是emulator和我的索尼爱立信都没有收到一些与numpad和游戏相关的事件。例如,我得到软1,发送,2,4,星号按键事件,但不接收1,3,左,右,向上,向下,开火事件
class CalculatorCanvas extends GameCanvas
{
public CalculatorCanvas() throws java.io.IOException
{
super(true);
setFullScreenMode(true);
cursor = new Sprite(Image.createImage("/cursor.png"));
}
public void paint(Graphics g)
{
g.setColor(0);
g.fillRect(0, 0, getWidth(), getHeight());
cursor.paint(g);
}
protected void keyPressed(int keyCode)
{
System.out.println("keyPressed: " + getKeyName(key));
if (keyCode == getKeyCode(RIGHT))
cursor.move(STEP, 0);
if (key == getKeyCode(LEFT))
cursor.move(-STEP, 0);
/*...*/
repaint();
}
private final int STEP = 3;
private Sprite cursor;
}
如何接收所有这些事件?提前谢谢
PS我发现Canvas(GameCanvas的基类)保留了所有这些事件,但我必须使用GameCanvas检查javadoc中的GameCanvas构造函数。你应该用“假”来称呼它 在GameCanvas构造函数调用中[已解决]
super(false)代码>用于不抑制键事件()。然后,您可以像处理简单画布对象一样处理关键事件