java+swing全局键盘事件监听问题
各位高手,请教个问题,如何做到swing键盘监听事件,条件是要做到即使焦点不在JFrame上,也要能响应,好比QQ中按CTRL+ALT+Z呼出聊天窗口一样的!不论我当前的窗口是哪里,都可以进行键盘响应!高手们,手头就这80分了,谢啦! java swing 键盘事件 --------------------编程问答-------------------- 就没有个人会吗? --------------------编程问答-------------------- JAVA swing界面JFrame窗体的全局按键事件监听public class ShowFrame extends JFrame
{
public void init()
{
ShowFrame showFrame=new ShowFrame();//首先必须创建好窗体
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
//然后得到当前键盘事件的管理器
manager.addKeyEventPostProcessor((KeyEventPostProcessor)this.getMyKeyEventHandler());
//然后为管理器添加一个新的键盘事件监听者。
}
public void getMyKeyEventHandler()
{
return new KeyEventPostProcessor()//返回一个实现KeyEventPostProcessor接口的匿名内部类。
{
public boolean postProcessKeyEvent(KeyEvent e)//实现postProcessKeyEvent方法
{
if (e.getKeyCode() == KeyEvent.VK_E)//根据你的需要监听相应的动作。
{
/*你想干什么就写在这个地方*/
}
}
}
}
如此以来就完成了。 --------------------编程问答--------------------
--------------------编程问答-------------------- 这个在焦点不在的时候不好使啊!
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.addKeyEventPostProcessor(new KeyEventPostProcessor() {
public boolean postProcessKeyEvent(KeyEvent event) {
if (event.getID() != KeyEvent.KEY_PRESSED) {
return false;
}
if (curPane != null) {
curPane.keyPressed(event);
return true;
}
return false;
}
});
补充:Java , Java EE