Java J2ME组合键按下(一次多个键)

Java J2ME组合键按下(一次多个键),java,java-me,midp,lcdui,Java,Java Me,Midp,Lcdui,我在这里使用键盘_键变量: //overrides the function keyPressed from "lcdui.Canvas" protected void keyPressed(int keyCode){ keyboard_key = keyCode; } 检测移动电话上是否按下了任何键 但它只返回最近按下的键,不知道是否有其他键可能被按下。请帮忙 顺便说一句,我使用NetBeans 7.0.1作为IDE …它只返回最近按下的键,不告诉是否

我在这里使用键盘_键变量:

    //overrides the function keyPressed from "lcdui.Canvas"
    protected void keyPressed(int keyCode){
        keyboard_key = keyCode;
    }
检测移动电话上是否按下了任何键

但它只返回最近按下的键,不知道是否有其他键可能被按下。请帮忙

顺便说一句,我使用NetBeans 7.0.1作为IDE

…它只返回最近按下的键,不告诉是否有其他键可能被按下

您在代码段中使用它的方式是,
键盘_键
始终只包含最近按下的键,因为它“没有空间”容纳除此之外的任何东西

考虑使用“记忆”按钮来“记忆”按下的不同键

    //define in your class:
    Vector keysPressed = new Vector(); // to keep track of keys pressed

    //overrides the function keyPressed from "lcdui.Canvas"
    protected void keyPressed(int keyCode){
        keysPressed.addElement(new Integer(keyCode));
    }
旁注:鉴于这个问题,您可能会从学习Java语言基础知识中获益。网上有很多教程,只要在网上搜索“Java入门”之类的内容就可以了

根据应用程序的要求,考虑重写和键按下。


如果你想处理游戏循环中的按键(“多个按键一次”提示你可能有这个想法),请考虑另一个选项:<代码> LCDUI.GooChansVasu/Copy> API,方法:

获取物理游戏密钥的状态。返回的整数中的每一位表示设备上的一个特定密钥。如果某个键当前处于按下状态或自上次调用此方法以来至少按下过一次,则该键的位将为1。如果该键当前处于向上状态,并且自上次调用此方法以来从未按下过,则该位将为0。这种锁定行为确保快速按键和释放总是被游戏循环捕获,不管循环运行得有多慢


@您提到的JarrodRoberson文章没有提到相关的API(
GameCanvas.getKeyStates
)。它的日期是2003年6月——大约10年前,也就是MIDP2()定稿后的半年——当时它甚至还没有接近主流。当时,MIDP(1.0,JSR37)手机的游戏功能确实很糟糕——但那是很久以前的事了。