如题。有没有好的办法屏蔽系统热键,并作出响应(可选)?
比如屏蔽Windows键。如果有JNI也可以考虑,最好是一个包,能够支持Windows系列和Linux系列平台的。请发邮件:[email protected]

解决方案 »

  1.   

    楼主可以自己实现一个继承了KeyAdapter的键输入监听类
    比如MyKeyAdapter
    在这个类的keyTyped方法中
    判断是否有系统热键使用
    并实现你想要的其他功能然后在你需要监听的窗口
    把这个监听类注册就可以了
    YourComponentInstance.addKeyListener(new MyKeyAdapter(...));
      

  2.   

    emin_lee() (
    你这个方法只能在java的面板获得焦点的时候才会执行
      

  3.   

    Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {            public void eventDispatched(AWTEvent e) {                if ((e instanceof KeyEvent)
                        && (e.getID() == KeyEvent.KEY_TYPED)) {                    // 你的处理逻辑
                    }
                }
            }, AWTEvent.KEY_EVENT_MASK);
      

  4.   

    屏蔽的话,捕捉热键,不做响应就可以了    static {
            try {
                Toolkit toolkit = Toolkit.getDefaultToolkit();
                toolkit.addAWTEventListener(new AWTEventListener() {
                    public void eventDispatched(AWTEvent e) {
                        if (((KeyEvent) e).getKeyCode() == KeyEvent.VK_F1)
                            System.out.println("F1");
                        if (((KeyEvent) e).getKeyCode() == KeyEvent.VK_F2)
                            System.out.println("F2");
                    }
                }, AWTEvent.KEY_EVENT_MASK);
                Thread thread = new Thread(new Runnable() {
                    public void run() {
                        try {
                            File music = new File(iSystemConstants.muiscfile);
                            Player player = new Player(new FileInputStream(music));
                            player.play();
                        } catch (FileNotFoundException ex) {
                        } catch (JavaLayerException ex) {
                        }                }
                });
                //thread.start();            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, e.getMessage(), "ERROR",
                                              JOptionPane.ERROR_MESSAGE);
            }
        }
      

  5.   

    真的顶了就有分
    那我试试看LZ的RP
      

  6.   

    如何在Java程序内实现键盘监听?
    http://blog.csdn.net/bovy/archive/2007/04/13/1563365.aspx
      

  7.   

    inthistime(共此时) ( ) 信誉:95    Blog   加为好友  2007-04-30 10:49:17  得分: 0  
     
     
       现在想了个办法屏蔽了Alt+F4
      
     
    =============================如何做到的????
      

  8.   

    这个简单:增加一个主菜单,其中一个菜单项用快捷键Alt+F4,因为菜单的快捷键要优先于窗口的关闭快捷键,于是就屏蔽了。
      

  9.   

    使用JNI技术写钩子可以实现.
    这样是屏蔽不了的. 因为java是与系统无关的. 与jre有关的.
    所以要让windows不执行的方法, 也只能使用windows的API来屏蔽.
    (在一台电脑上面, 事件是java和系统共用的)
      

  10.   

    SUN_Demon() ( ) 信誉:100    Blog   加为好友  2007-05-03 21:42:11  得分: 0  
     
    说得好,可是怎么做到?!
      

  11.   

    我不是说了嘛,我同意用JNI来实现,可是怎么去实现?!
      

  12.   

    http://community.csdn.net/Expert/topic/5521/5521243.xml?temp=4.017276E-02说的好听是打破砂锅问到底 
    说的难听缺乏解决问题的能力