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发送24星号按键事件,但不接收13向上向下开火事件

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)用于不抑制键事件()。然后,您可以像处理简单画布对象一样处理关键事件