JPanel中如何捕获键盘事件?

AYellow 2002-12-06 06:30:01
JPanel中用addKeyListener添加键盘监听器,但是发生键盘事件时,监听器对应的方法没有被调用。
注意该JPanel上没有任何控件,我只是在上面画图。
是不是因为JPanel没有焦点不能截获键盘事件?
...全文
193 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
copyright 2002-12-07
  • 打赏
  • 举报
回复
自己不能捕获,但是可以外界传给他啊,所以焦点不是问题
gaoqianjin 2002-12-07
  • 打赏
  • 举报
回复
发原代码看看!
javawolf 2002-12-07
  • 打赏
  • 举报
回复
如果你用jbuilder,在designer里直接选就可以了。
AYellow 2002-12-07
  • 打赏
  • 举报
回复
如何能让JPanel收到键盘事件?
AYellow 2002-12-07
  • 打赏
  • 举报
回复
public class DrawPanel extends JPanel {
........
this.addKeyListener(new DrawPanelKeyListener(this));
.........

public class DrawPanelKeyListener extends KeyAdapter{
JPanel panel;
public DrawPanelKeyListener(DrawPanel panel){
this.panel = panel;
}

public void keyTyped(KeyEvent e){
System.out.println("sasd");
if(e.getKeyCode()==e.VK_DELETE){
document.removeSelected();
repaint();
}
}

public void keyPressed(KeyEvent e) {System.out.println("sasd");}
}
}
mercury1231 2002-12-07
  • 打赏
  • 举报
回复
JPanel没有焦点当然不能捕获键盘事件啦。楼上的说的很对。
zhaolizu 2002-12-07
  • 打赏
  • 举报
回复
代码有问题吧,贴出来看看?
gavin1976 2002-12-06
  • 打赏
  • 举报
回复
是不是因为JPanel没有焦点不能截获键盘事件?
正确,需要加一个requestFocus()之后才能捕获键盘事件!
copyright 2002-12-06
  • 打赏
  • 举报
回复
你addKeyListener以后有没有实现啊?
默认的事件处理可都是空的哦
study_body 2002-12-06
  • 打赏
  • 举报
回复
我这方面有点外行,你还是看JavaDoc,找到可能用的API.没有空间本人觉得也应该可以。
redkey 2002-12-06
  • 打赏
  • 举报
回复
对键盘事件监听了吗

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧