Keyboard KeyListener不';不行,我的Jframe无法识别我的键盘

Keyboard KeyListener不';不行,我的Jframe无法识别我的键盘,keyboard,jframe,keylistener,jtabbedpane,Keyboard,Jframe,Keylistener,Jtabbedpane,我不知道为什么我的应用程序无法检测到我的键盘。 应用程序是实现SerialPortEventListener和KeyListener的JFrame。 在我的应用程序的Jframe中,我有一个带有两个面板的选项卡式窗格。 当我按下一些按钮时,它不工作(输出中没有任何内容) 我将向您展示我的代码(不是全部,只是最重要的部分): 我的班级: 我的按键功能: 我的类的构造函数: 主要 KeyListener仅在其注册的组件可聚焦且具有焦点时才会响应,因为单击按钮将导致焦点转移到按钮,因此帧将不再具有输入

我不知道为什么我的应用程序无法检测到我的键盘。 应用程序是实现SerialPortEventListener和KeyListener的JFrame。 在我的应用程序的Jframe中,我有一个带有两个面板的选项卡式窗格。 当我按下一些按钮时,它不工作(输出中没有任何内容)

我将向您展示我的代码(不是全部,只是最重要的部分):

我的班级: 我的按键功能我的类的构造函数: 主要
KeyListener
仅在其注册的组件可聚焦且具有焦点时才会响应,因为单击按钮将导致焦点转移到按钮,因此帧将不再具有输入焦点

框架也不太可能直接接收键盘焦点

作为一般的经验法则,您应该改为使用,这将为您提供超越焦点相关问题的能力

根据您所做的,您还可以考虑使用<代码> JTextArea 或<代码> JTraceField>代码> >“代码> > Debug监听器< /Cord>,假设您想通过串行连接发送字符。请查看以了解更多详细信息

public class java_arduino_frame extends javax.swing.JFrame implements SerialPortEventListener, KeyListener {
    public void keyTyped(KeyEvent e){
    throw new UnsupportedOperationException("not yet");
    }

    public void keyPressed(KeyEvent e){
        int keyCode;
        keyCode = e.getKeyCode();   
        System.out.println(keyCode);
    }

    public void keyReleased(KeyEvent e){
     throw new UnsupportedOperationException("not yet");
    }
  public java_arduino_frame() {


 getContentPane().setBackground( Color.LIGHT_GRAY );
 initComponents();  
 addKeyListener(this);

}
   public static void main(String args[]) {
    strong text
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new java_arduino_frame().setVisible(true);
        }
    });