当前位置:编程学习 > JAVA >>

Swing快捷键问题,绝不是弱智问题,请高手指点!

请教一下在Swing中,这样的快捷键怎么做。

不是菜单那种快捷键,而是我自己定义的快捷键,比如我按S就干什么什么事情,按E就干什么什么,不是按组合键,而是就按一个键,玩过PS的朋友都知道PS就是这样的,很方便。

我给主JFrame注册了keyListener其实就搞定了这个问题了,但是真正的问题出在这里,我的主JFrame里面有很多子窗口和各种JPanel容器,当我点了里面这些东西以后,焦点就不在主JFrame上了,注册给主JFrame的key监听就不管用了,这可怎么办,我不能给每个容器都注册一遍这个KEY监听吧,那样不是好的设计。

刚刚有高手说:“有个组件叫JIntellitype,你上网查下,它是注册全局热键用的,你看能不能用得上”。
我先发了这帖子,马上就去看下JIntellitype。 --------------------编程问答-------------------- 简易楼主是用SUN公司的NetBeans开发,这个开发工具对Swing能够更好的支持,设置快捷键之类的,完全可视化操作。 --------------------编程问答-------------------- 若是在本窗口激活状态下加一个全局监听 

若是想全系统有效就得jni加一个钩子了 --------------------编程问答-------------------- --------------------编程问答-------------------- 的确需要 JNI , JIntellitype项目已经实现了。 

项目地址:http://melloware.com/products/jintellitype/index.html

用法请看我的博客: http://pengranxiang.javaeye.com/blog/938634 --------------------编程问答-------------------- 使用 
java.awt.Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
    public void eventDispatched(AWTEvent evt){
        ...
    }
}, AWTEvent.KEY_EVENT_MASK);
--------------------编程问答-------------------- 如楼上所说,加全局事件 --------------------编程问答-------------------- 用JIntellitype吧,我以前玩过,能实现你想要的功能。 --------------------编程问答-------------------- 不用全局热键怎么办啊? --------------------编程问答--------------------
引用 4 楼 pengranxiang 的回复:
的确需要 JNI , JIntellitype项目已经实现了。 

项目地址:http://melloware.com/products/jintellitype/index.html

用法请看我的博客: http://pengranxiang.javaeye.com/blog/938634

 顶下。 --------------------编程问答-------------------- 楼主,建议你还是用5楼的法子吧

别去看那个什么 JIntellitype 了

虽然没看过,但估计其核心就是按5楼那AWT事件的法子解决的 --------------------编程问答-------------------- 这个我做过  不过我做的是要屏蔽掉快捷键。不过呢个人觉得屏蔽快捷键和添加快捷键是一样的拉。我当时是做一个全局的键盘监听事件 每当你按下一个键的时候呢  你就能获取到keycode值了  然后根据不同的keycode你就定制不同的快捷键了
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,