在做菜单时候,我们知道可以为jmenuitem加上加速键,比如记事本里面的ctrl+c
ctrl+ v等等办法是调用setAccelerator()方法比如
item.setAccelerator(KeyStroke.getKeyStroke('c',Event.CTRL_MASK));
但是我如果想把单个键作为加速键应该怎么办,比如把f1或者del作为菜单中某项的加速键应该如何设置??谢谢!!

解决方案 »

  1.   

    KeyStroke.getKeyStroke(char keyChar)
    这样行不行?
      

  2.   

    KeyStroke.getKeyStroke(Character keyChar,0)//
    这样也行!
      

  3.   

    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    class TestChar extends javax.swing.JFrame 
    {
    public TestChar()
    {
    JMenuBar bar=new JMenuBar();
    JMenu menu=new JMenu("菜单");
    JMenuItem item=new JMenuItem("新建文件");
    menu.add(item);
    bar.add(menu);
    setJMenuBar(bar);
    item.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C,0));
    item.addActionListener(new java.awt.event.ActionListener(){
    public void actionPerformed(java.awt.event.ActionEvent e)
    {
    System.out.println("事件产生");
    }
    });
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    setSize(200,200);
    setVisible(true);
    }
    public static void main(String[] args) 
    {
    new TestChar();
    }
    }