java - 按键事件未被调用

标签 java swing awt

public GuiC() {
    getContentPane().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println("hi");

        }
    });
    setBackground(Color.GREEN);
    setTitle("Hi!");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 500, 500);
    getContentPane().setLayout(null);

}

所以这是我的框架,我在这里做错了什么吗?因为当我按任意键时不会调用键事件,请帮忙:)

最佳答案

您可能需要请求焦点。

public GuiC() {
    this.getContentPane().requestFocus(); //request focus here
    this.getContentPane().addKeyListener(new KeyListener() {
    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println("hi: " + e.getKeyChar());

    }
});
    setBackground(Color.GREEN);
    setTitle("Hi!");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 500, 500);
    getContentPane().setLayout(null);

}

补充阅读:How to Write a Key Listener

关于java - 按键事件未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19277866/

相关文章:

java - 用于在 URI 模板 (RFC 6570) 中提取值的独立 Java 实现?

java - 如何在不使用可比较和比较器接口(interface)的情况下对 map 进行排序?自定义排序怎么写?

java - 获取 JTextField 中的文本

java - 回到之前的 JPanel

java - TestNG在多线程环境下重试测试

java - 如何避免在这里创建类似对象的冗余实例?

java - 如何在java中导出一张图像的2个不同大小的图像

java - 如何在自定义 JComponent 中使后台工作?

java - 代码以不同顺序执行,Jframe、Button 和 TextArea

java - 是否可以在不重置 JComponent 属性的情况下为 JComponent 设置操作?