Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';无法让KeyEvent侦听器工作_Java_Keylistener_Keyevent - Fatal编程技术网

Java 我能';无法让KeyEvent侦听器工作

Java 我能';无法让KeyEvent侦听器工作,java,keylistener,keyevent,Java,Keylistener,Keyevent,好的,首先。 如果我做System.out.println(e); 当我按键时,它会打印出来。然而,我一辈子都不知道如何将其存储到int中。如果我这样做,我的IDE不会给我任何错误 按下int=e.键按下();或int pressed=e.getKeyCode(); 但如果我试着打印,什么都不会发生 我已经试着让它工作了好几个小时,在谷歌上搜索KeyEvent处理程序和Javadocs似乎对我没有什么帮助 public void keyPressed(KeyEvent e) { pres

好的,首先。 如果我做System.out.println(e); 当我按键时,它会打印出来。然而,我一辈子都不知道如何将其存储到int中。如果我这样做,我的IDE不会给我任何错误 按下int=e.键按下();或int pressed=e.getKeyCode(); 但如果我试着打印,什么都不会发生

我已经试着让它工作了好几个小时,在谷歌上搜索KeyEvent处理程序和Javadocs似乎对我没有什么帮助

public void keyPressed(KeyEvent e) {
    pressed = e.getKeyCode();
    System.out.println(pressed);
}
do{
时间=System.currentTimeMillis();
做{
如果(按下==37 | |按下==38 | |按下==39 | |按下==40){
lastvalid=按下;
}
}
while(System.currentTimeMillis()<时间+速度);
开关(最后有效){
案例37:catarloc.set(0,(整数)catarloc.get(0)-1;break;
案例38:catarloc.set(1,(整数)catarloc.get(1)-1;break;
案例39:catarloc.set(0,(整数)catarloc.get(0)+1);break;
案例40:catarloc.set(1,(整数)catarloc.get(1)+1;break;
}
if(Math.random()>.95 | | apples<1){
applarray[(int)(Math.random()*100/2.8)][(int)(Math.random()*100/4)]=真;
苹果++;
}
分数+=catarloc.size()-1;
label.setText(“分数”+分数);
mainWindow.repaint();
}
而(赢==假| |输==假);
那怎么办?它返回一个整数。
KEY\u PRESSED
是KeyEvent上的一个静态最终整数成员,表示按下某个键时的事件,而不是实际的键代码


更新:(哇)我看到你已经试过getKeyCode了。根据事件类型,如果打印或?

会发生什么情况:

  • keyEvent.getKeyChar()
    提供与键关联的字符,但仅用于键入的
    key\u事件。否则返回
    CHAR\u UNDEFINED
  • keyEvent.getKeyCode()
    为您提供虚拟按键代码,但仅适用于按下的
    按键和释放的
    按键事件。否则返回
    VK\u UNDEFINED

您使用的是什么库(Swing/SWT/etc)?您能否包括监听器的源代码和密钥事件的用法?完成,包括使用Input的部分您将密钥监听器安装到哪个组件?这可能是一个焦点问题吗?因此,如果您单击具有KeyListener的控件,然后按一个键,它是否接收到事件?显然这是一件奇怪的事情。我一直在尝试让箭头键工作,如果我第一次尝试,则不会检测到任何键输入。在我尝试之前,我必须先尝试一把普通的钥匙。
    do{
        time = System.currentTimeMillis();
        do{
            if(pressed == 37||pressed==38||pressed==39||pressed==40){
                lastvalid=pressed;
            }
        }
        while(System.currentTimeMillis() < time + speed);

        switch(lastvalid){
            case 37: catarloc.set(0, (Integer)catarloc.get(0)-1); break;
            case 38: catarloc.set(1, (Integer)catarloc.get(1)-1); break;
            case 39: catarloc.set(0, (Integer)catarloc.get(0)+1); break;
            case 40: catarloc.set(1, (Integer)catarloc.get(1)+1); break;
        }

        if(Math.random() > .95 || apples < 1){
            applearray[(int)(Math.random()*100/2.8)][(int)(Math.random()*100/4)] = true;
            apples++;
        }
        score+=catarloc.size()-1;
        label.setText("Score     "+ score);
        mainWindow.repaint();
    }
    while(win == false || lose == false);