我给你一个方法吧。绝对可以jPane1.getToolkit().getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
public void eventDispatched(AWTEvent e) {
if (e instanceof KeyEvent) {
KeyEvent key = (KeyEvent) e;
System.err.println(key.getComponent());
System.err.println(key.getSource());
System.err.println(key.getKeyChar());
}
}
}, AWTEvent.KEY_EVENT_MASK);
呵呵,大家可以试试上面的方法,可以监听一个JPanel中所有的KEY事件,如果想监听其它事件,如Focus,只要将AWTEvent.KEY_EVENT_MASK 改为 FOCUS_EVENT_MASK楼上的,你可以参考这个,在你的那个rootPanel或contentpane中加上这个。总之,你用这个是可以实现的。祝你好运,不会就问吧
public void eventDispatched(AWTEvent e) {
if (e instanceof KeyEvent) {
KeyEvent key = (KeyEvent) e;
System.err.println(key.getComponent());
System.err.println(key.getSource());
System.err.println(key.getKeyChar());
}
}
}, AWTEvent.KEY_EVENT_MASK);
呵呵,大家可以试试上面的方法,可以监听一个JPanel中所有的KEY事件,如果想监听其它事件,如Focus,只要将AWTEvent.KEY_EVENT_MASK 改为 FOCUS_EVENT_MASK楼上的,你可以参考这个,在你的那个rootPanel或contentpane中加上这个。总之,你用这个是可以实现的。祝你好运,不会就问吧
解决方案 »
- Java 面试题(A)——Java SE
- static的数据库连接对于单进程程序有没有影响?
- 看看这段程序/////我调了两天两夜,就是得不到想要的结果,请问哪里出问题了???????????????
- 问一个低级的基础问题
- 一个clientSocket连到服务器,保持连接,定时读数据,服务器不定时写入数据,会不会丢包
- eclipse的配置问题
- 简单问题:如何点击Frame2的按钮,改变Frame1的jLabel1的显示文字??
- 我感觉Java的swing似乎没必要学习了,是这样的吗?
- 为什么我感觉不到JAVA的优势?
- =====送分拉!大家都来发飚阿!!=========
- 怎样移动一个组件?请我个办法。
- 关于用java API 实现文字操作的提问。
试了一下,真的可以。
不过可否稍微讲解一下?
为什么用addKeyListener就不可以呢?我觉得理论上效果是一样的呀?
它得到一个panel的 toolkit(工具箱),然后再在上面监听。你注意后面的 AWTEvent.KEY_EVENT_MASK,你查查API,会看到更多的_MASK