请教一下在Swing中,这样的快捷键怎么做。不是菜单那种快捷键,而是我自己定义的快捷键,比如我按S就干什么什么事情,按E就干什么什么,不是按组合键,而是就按一个键,玩过PS的朋友都知道PS就是这样的,很方便。我给主JFrame注册了keyListener其实就搞定了这个问题了,但是真正的问题出在这里,我的主JFrame里面有很多子窗口和各种JPanel容器,当我点了里面这些东西以后,焦点就不在主JFrame上了,注册给主JFrame的key监听就不管用了,这可怎么办,我不能给每个容器都注册一遍这个KEY监听吧,那样不是好的设计。刚刚有高手说:“有个组件叫JIntellitype,你上网查下,它是注册全局热键用的,你看能不能用得上”。
我先发了这帖子,马上就去看下JIntellitype。

解决方案 »

  1.   

    简易楼主是用SUN公司的NetBeans开发,这个开发工具对Swing能够更好的支持,设置快捷键之类的,完全可视化操作。
      

  2.   

    若是在本窗口激活状态下加一个全局监听 若是想全系统有效就得jni加一个钩子了
      

  3.   

    的确需要 JNI , JIntellitype项目已经实现了。 项目地址:http://melloware.com/products/jintellitype/index.html用法请看我的博客: http://pengranxiang.javaeye.com/blog/938634
      

  4.   

    使用 
    java.awt.Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener(){
        public void eventDispatched(AWTEvent evt){
            ...
        }
    }, AWTEvent.KEY_EVENT_MASK);
      

  5.   

    用JIntellitype吧,我以前玩过,能实现你想要的功能。
      

  6.   

    楼主,建议你还是用5楼的法子吧别去看那个什么 JIntellitype 了虽然没看过,但估计其核心就是按5楼那AWT事件的法子解决的
      

  7.   

    这个我做过  不过我做的是要屏蔽掉快捷键。不过呢个人觉得屏蔽快捷键和添加快捷键是一样的拉。我当时是做一个全局的键盘监听事件 每当你按下一个键的时候呢  你就能获取到keycode值了  然后根据不同的keycode你就定制不同的快捷键了