Java 如何使用keylistener?

Java 如何使用keylistener?,java,keylistener,keyevent,Java,Keylistener,Keyevent,似乎我无法让我的程序注意到我按下按钮的事实。我看过很多教程和图片,我认为这段代码应该可以工作,但它就是不行。有人能帮我吗 package projekt; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.

似乎我无法让我的程序注意到我按下按钮的事实。我看过很多教程和图片,我认为这段代码应该可以工作,但它就是不行。有人能帮我吗

 package projekt;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;

public class Projekt extends javax.swing.JFrame implements KeyListener {


public Projekt() {
    initComponents();
    this.addKeyListener(this);
}

 [...]

@SuppressWarnings("unchecked")

@Override
public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_A){
        System.out.println("It works!!!"); //It won't print this
}


@Override
public void keyTyped(KeyEvent e) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}

@Override
public void keyReleased(KeyEvent e) {
    throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}

KeyEvent仅分派给具有焦点的组件

this.addKeyListener(this);
您正在将KeyListener添加到帧中。帧没有焦点。显示在框架上的组件具有焦点

this.addKeyListener(this);
我似乎无法让我的程序接受我按下按钮的事实

您不应该使用KeyListener来侦听特定的键事件。这是旧的AWT代码

在Swing中,您应该使用
键绑定
<代码>键绑定允许您监听按键,即使组件没有焦点


有关更多信息,请阅读Swing教程中的部分。

KeyEvent仅分派给具有焦点的组件

this.addKeyListener(this);
您正在将KeyListener添加到帧中。帧没有焦点。显示在框架上的组件具有焦点

this.addKeyListener(this);
我似乎无法让我的程序接受我按下按钮的事实

您不应该使用KeyListener来侦听特定的键事件。这是旧的AWT代码

在Swing中,您应该使用
键绑定
<代码>键绑定允许您监听按键,即使组件没有焦点


有关更多信息,请阅读上的Swing教程部分。

您已经发射了很多。请随意发布其他代码。你确定按键没有被呼叫吗?你已经发射了很多信号。请随意发布其他代码。你确定没有人打电话给你吗?