java键盘事件监听

packagecom.czp.view;importjava.awt.BorderLayout;importjava.awt.Component;importjava.a... package com.czp.view;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Game extends JFrame{

private JButton jb1 = new JButton("");
Font font = new Font("微软雅黑", 3, 50);
public Game() {
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
System.out.println(454);
}
});
setLocationRelativeTo(null);
setSize(600, 150);
setDefaultCloseOperation(3);
setVisible(true);
setLayout(new GridLayout(1, 4, 20 ,20));
// add(jb1); 这句添加上去就键盘监听就没有用了 怎么回事啊
setResizable(false);
}
public static void main(String[] args) {
new Game();
}
}
展开
 我来答
rancherworld
推荐于2016-10-28
知道答主
回答量:9
采纳率:0%
帮助的人:15万
展开全部
原因是你的listener是加到JFrame, 但没有加到jb1, 加到JFrame的的listener是不会监听加到JFrame的components的! 当focus在某个component时, 只有那个component会监听到键盘!
你的程序运行时就会focus在jb1这个button上, 但这个button并未加监听! 你可以为每个要监听的component加listener, 例如:

KeyListener listener = new KeyAdapter(){...};
...
jb1.addKeyListener(listener);
jb2.addKeyListener(listener);
...
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式