—
前言
- 最近写了一个程序,需要用到键盘监听和鼠标监听,鼠标监听到没有Bug ,但在写键盘监听的时候,在监听函数里添加了对键盘值的监听,但按下后却没有反应
- 代码如下,当按下空格的时候输出空格被按下
@Override
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
Systme.out.println("Space");
}
}
问题
- 当我的空格按下时,却并没有输出Space,这就很奇怪了,因为我明明在想要的监听的界面添加了监听
paExperimentPanel.addKeyListener(this);
解决办法
- 后来发现除了需要添加监听外,还需要让监听的界面获得焦点
paExperimentPanel.requestFocusInWindow(); //让其获得焦点,这样才能是键盘监听能够正常使用
- 可能因为我创建的界面太多,所以需要指定对那个界面进行监听