比如我的程序需要截屏,我当然要最小化程序或在其它程序中。现在我希望我的程序在系统中
注册一个快捷键来响应截屏功能。
请问如何做,能给个实例吗?

解决方案 »

  1.   

    Frame 中有setVisible(boolean f);可以使新建的Frame是不可见得。
    添加一个按键事件响应截屏
      

  2.   

    import javax.swing.JFrame;
    import javax.swing.JMenu;//菜单条按钮添加文字类
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.FlowLayout;
    import javax.swing.KeyStroke;
    import javax.swing.JMenuBar;//菜单条类
    import javax.swing.JMenuItem;//下拉菜单类
    import javax.swing.ImageIcon;
    import java.awt.event.KeyEvent;//加速键,组合键的类
    class MenuFrame extends JFrame {
      FlowLayout flowLayout1=new FlowLayout(); 
      JMenuBar jMenuBar1=new JMenuBar();//添加菜单条
      JMenu jmenu1=new JMenu("文件");   
      JMenuItem jMenuItem1_1=new JMenuItem("打开");
      JMenuItem jMenuItem1_2=new JMenuItem("保存");   
      JMenu jmenu2=new JMenu("系统管理");
      JMenuItem jMenu2_1=new JMenu("用户维护");
      JMenuItem jMenuItem2_2=new JMenuItem("口令维护");
      ImageIcon imageIcon1=new ImageIcon("d:\\java_project\\image\\exit.gif");
      JMenuItem jMenuItem2_3=new JMenuItem("退出系统",imageIcon1);
      JMenuItem jMenuItem2_1_1=new JMenuItem("新增用户");
      JMenuItem jMenuItem2_1_2=new JMenuItem("删除用户"); 
      MenuListener menuListener1=new MenuListener();
      MenuFrame (){
        super("带菜单栏的框架实例");
        setSize(500,350);
        getContentPane().setLayout(flowLayout1);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setJMenuBar(jMenuBar1);//添加菜单栏
        //添加文件菜单
        jMenuBar1.add(jmenu1);
        jmenu1.add(jMenuItem1_1);
        jmenu1.add(jMenuItem1_2);
        //添加系统管理菜单
        jMenuBar1.add(jmenu2);
        jmenu2.add(jMenu2_1);
        jmenu2.add(jMenuItem2_2);
        jmenu2.addSeparator();//添加分割符
        jmenu2.add(jMenuItem2_3);//为jMenuItem2_3添加组合键
    //------------------------------------------------------------------------------------
    jMenuItem2_2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, KeyEvent.CTRL_MASK, false));
    //------------------------------------------------------------------------------------
        //添加用户维护菜单
        jMenu2_1.add(jMenuItem2_1_1);
        jMenu2_1.add(jMenuItem2_1_2);
        //添加鼠标事件接口     
       jMenuItem2_1_1.addActionListener(menuListener1);
       jMenuItem2_1_2.addActionListener(menuListener1);
       jMenuItem2_2.addActionListener(menuListener1);
       jMenuItem2_3.addActionListener(menuListener1);
       show();
       }
      public static void main(String[] args){
         MenuFrame menuFrame1=new MenuFrame();
       }   
    }
    //定义菜单项的鼠标事件处理接口
    class MenuListener implements ActionListener{//实现了在菜单事件下继承鼠标事件的接口
    public void actionPerformed(ActionEvent e)
    {
      String sCommand=e.getActionCommand();
        if(sCommand.equals("新增用户")){
           System.out.println("新增用户被选中");
         }
        else if(sCommand.equals("删除用户"))
        {
           System.out.println("删除用户被选中");
         }
        else if(sCommand.equals("口令维护")){
         System.out.println("口令维护被选中");
         }
        else if(sCommand.equals("退出系统")){
         System.exit(0);
         }  
    }
    }
    你看一下这个程序~~
    他是再系统管理的菜单下的 口令维护 的快捷键的制作~~~
    不知道你能用的上不阿~~
      

  3.   

    这个应该要用VC写一个全局Hook的dll,java调用该dll。