java+swing全局键盘事件监听问题

eddie 2013-11-01 05:27:47
各位高手,请教个问题,如何做到swing键盘监听事件,条件是要做到即使焦点不在JFrame上,也要能响应,好比QQ中按CTRL+ALT+Z呼出聊天窗口一样的!不论我当前的窗口是哪里,都可以进行键盘响应!高手们,手头就这80分了,谢啦!
...全文
555 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
eddie 2013-11-04
  • 打赏
  • 举报
回复
就没有个人会吗?
eddie 2013-11-04
  • 打赏
  • 举报
回复
引用 3 楼 huxiweng 的回复:

    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;  
        }  
    });  
这个在焦点不在的时候不好使啊!
teemai 2013-11-04
  • 打赏
  • 举报
回复

    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 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)//根据你的需要监听相应的动作。 { /*你想干什么就写在这个地方*/ } } } } 如此以来就完成了。

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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