实现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);
}