Java KeyListener不';我没有任何反应

Java KeyListener不';我没有任何反应,java,awt,listener,keylistener,Java,Awt,Listener,Keylistener,给定以下(部分)代码: 我删除了我的工作代码,只留下有问题的代码 当我按下F时,我想打印到屏幕123,但什么都没有 打印到屏幕上 按键输入的代码有什么问题 将if(key='F')更改为ifif(key.equals('F'))。测试对象的等价性而不是相等性 确保组件可聚焦到requestFocusInWindow()。后者最好通过start()方法上的@Override来完成 考虑使用Swing(JApplet)和键绑定,而不是AWTApplet和KeyListener 将if(key='F'

给定以下(部分)代码:

我删除了我的工作代码,只留下有问题的代码

当我按下
F
时,我想打印到屏幕
123
,但什么都没有 打印到屏幕上

按键输入的代码有什么问题

  • 将if
    (key='F')
    更改为if
    if(key.equals('F'))
    。测试对象的等价性而不是相等性
  • 确保组件可聚焦到
    requestFocusInWindow()
    。后者最好通过
    start()
    方法上的
    @Override
    来完成
  • 考虑使用Swing(
    JApplet
    )和键绑定,而不是AWT
    Applet
    KeyListener
  • 将if
    (key='F')
    更改为if
    if(key.equals('F'))
    。测试对象的等价性而不是相等性
  • 确保组件可聚焦到
    requestFocusInWindow()
    。后者最好通过
    start()
    方法上的
    @Override
    来完成
  • 考虑使用Swing(
    JApplet
    )和键绑定,而不是AWT
    Applet
    KeyListener

  • 另外,不要忘记注册密钥侦听器。还要注意,关键侦听器只有在它注册到的组件是可聚焦的并且具有当前焦点时才能工作。@AndrewThompson:回答这个问题,这样我就选对了,因为你刚刚度过了我的一天+1.很高兴你把它整理好了。:)另外,不要忘记注册密钥侦听器。还要注意,关键侦听器只有在它注册到的组件是可聚焦的并且具有当前焦点时才能工作。@AndrewThompson:回答这个问题,这样我就选对了,因为你刚刚度过了我的一天+1.很高兴你把它整理好了。:)
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    
    public class Test extends Applet implements MouseListener , KeyListener
    {
        private static final long serialVersionUID = 1L;
        private static final int TOTAL_POINTS = 500;
        private static final int THRESHOLD = 5;
    
        // the arrays that contain the indexes of the points that the user created 
        private int[] m_Xindex, m_yIndex;  
    
        // The number of points that the user created 
        private int m_pointsCreated;       
    
        @Override
        public void keyTyped(KeyEvent keyEvent) 
        {
              char key = keyEvent.getKeyChar();
              if (key == 'F')
                  System.out.println("123");
        } 
    
        @Override
        public void mouseReleased(MouseEvent arg0) {/* Empty */ }
    
        @Override
        public void mouseClicked(MouseEvent e) {/* Empty */ }
    
        @Override
        public void mouseEntered(MouseEvent e) {/* Empty */ }
    
        @Override
        public void mouseExited(MouseEvent e) {/* Empty */ }
    
        @Override
        public void mousePressed(MouseEvent myEvent) {/* Empty */ }
    
        @Override
        public void keyPressed(KeyEvent keyEvent)  {}
    
        @Override
        public void keyReleased(KeyEvent keyEvent) {}
    }