实现KeyListener代码,Java。无法识别输入

实现KeyListener代码,Java。无法识别输入,java,keylistener,Java,Keylistener,我的目标是在按下箭头键时做一些事情。但它无法识别任何输入 import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.event.*; import javax.swing.*; import java.awt.*; class keyb extends JFrame implements KeyListener{ public keyb(){

我的目标是在按下箭头键时做一些事情。但它无法识别任何输入

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;


class keyb extends JFrame implements KeyListener{

    public keyb(){

        setFocusable(true);
        addKeyListener(this);

    }

    public static void main(String[] args){
        System.out.println("alsfhkasld");
        keyb ff = new keyb();

        System.out.println("end");
        System.out.println("ennnn");

    }


    public void keyPressed (KeyEvent e){
        System.out.println("anything....");
        if(e.getKeyCode()==KeyEvent.VK_UP){
            System.out.println("up! UP!");
        }else if(e.getKeyCode()==KeyEvent.VK_DOWN){
            //y+=50;
        }else if(e.getKeyCode()==KeyEvent.VK_RIGHT){            
            //x+=50;
        }else if(e.getKeyCode()==KeyEvent.VK_B){
            System.out.println("B come on!");
        }

    }
    public void keyReleased (KeyEvent e){}
    public void keyTyped (KeyEvent e){}

}
编译时没有错误。它忽略了我按下的任何键。
如果这与JFrame有关,例如,它仅适用于GUI,是否有人可以建议另一种方法来读取箭头键作为输入?

您的实现不完整。您可以按照下面的代码来实现keylister

导入java.awt。;导入java.awt.event。;导入javax.swing.*

公共类密钥检查器扩展了JFrame{ JLabel keyLabel=新的JLabel(“按任意键”)

类KeyMonitor扩展了KeyAdapter{ 键盘检测器显示

KeyMonitor(KeyChecker display) {
    this.display = display;
}

public void keyPressed(KeyEvent event) {
    display.keyLabel.setText("" + event.getKeyChar());
    display.repaint();
} }

当您通过设置
setVisible(true)
实际显示JFrame时,它将起作用

public keyb(){

    setFocusable(true);
    addKeyListener(this);

    setVisible(true);

}

(顺便说一下,根据java命名约定,类以大写开头)

KeyListener
仅在GUI中工作。如果您不想像其他人一样创建GUI,则需要使用一个库,将终端设置为非规范模式,并对事件提供一些抽象。确切的详细信息将取决于您最终选择的库,可能还有您的操作系统。请参阅f或示例

是否要识别控制台中的箭头键按下??
public keyb(){

    setFocusable(true);
    addKeyListener(this);

    setVisible(true);

}