只有在windows10中,Java Keyevent在Windows7和8中都不起作用..它运行良好..我不知道为什么

时间:2017-01-31 07:52:17

标签: java swing awt keylistener

  1. 我正在制作KeyEvent测试计划,但它在Windows10中不起作用。
  2. 这个程序适用于Windows7和8版本..我不知道为什么......
  3. KeyBoard问题..?或其他..?

    class KeyFrame extends JFrame{
    
           public KeyFrame(){
            KeyTest t = new KeyTest();
            setContentPane(t);
            this.setSize(700, 700);
    
            setSize(300,300);
            setVisible(true);
            t.requestFocus();
        }
    }
    
    public class KeyTest extends JPanel{
    
        JLabel la = new JLabel("Input");
    
        public KeyTest(){
            add(la);
            this.addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent e){
                    String data = e.getKeyText(e.getKeyCode());
                    la.setText(data + "Pressed");
    
                    if(e.getKeyCode() == KeyEvent.VK_F1){
                        setBackground(Color.GREEN);
                    }
                    else if(e.getKeyChar() == '%'){
                        setBackground(Color.YELLOW);
                    }
                }
            });
        }
    
        public static void main(String[] ar){
            new KeyFrame();
        }
    }
    

1 个答案:

答案 0 :(得分:0)

如果要为JLabel添加KeyListener。

注意:某些组件无法像JLabel那样具有可聚焦性。

你可以尝试那个。

确保组件的isFocusable方法返回true。此状态允许组件接收焦点。例如,您可以通过调用标签上的setFocusable(true)方法为JLabel组件启用键盘焦点。