Tecla de atalho para um menu

Olá pessoal,

Alguém sabe como colocar 3 teclas de atalho para acesso a uma opção do menu, ou seja, quanto a pessoa pressionar Ctrl+Shift+O acessa automaticamente uma opção do menu.

Observação: Sei colocar apenas duas teclas e na internet não achei nada com 3.

 menuItem.setAccelerator(KeyStroke.getKeyStroke(
        KeyEvent.VK_2, ActionEvent.ALT_MASK));

Obrigado!

setAccelerator(javax.swing.KeyStroke.getKeyStroke(
              java.awt.event.KeyEvent.VK_O, 
                java.awt.event.InputEvent.SHIFT_MASK | 
                              java.awt.event.InputEvent.CTRL_MASK));

E como colocar no layout esta informação (Control+S)?

por exemplo:

Salvar         Control+S

Valeu.

Obrigado,

fabioissamu faz assim ô:

        JMenu       menu = new JMenu("Arquivo");
        menu.setMnemonic(KeyEvent.VK_A);
   
        JMenu       subMenu;
        JMenuItem   menuItem;
        
        menuItem = new JMenuItem("Novo Projeto");
        menuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        menu.add(menuItem);

Abraços!

Valeu pela resposta, mas acho que eu não consegui expressar direito a coisa.

seguinte, eu gostaria que a informação fosse apresentada tipo um

JMenuItem btnSalvar = new JMenuItem(“Salvar Ctrl+S”);

só que alinhado manja?

O Schiavon lhe deu a resposta com açúcar e tudo. Basicamente você precisa chamar o “setAccelerator”, com o parâmetro que equivale a Ctrl+S.

O exemplo dele mostra “Ctrl+Shift-O”.

Ctrl+S seria:

menuItem.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_MASK));

Valeu galera.

e como seria se eu quer só uma tecla para atalho exemplo F8???

Onde está o “Dispose()” você pode colocar o que você quer fazer…

 //CONFIGURA PRESSIONAMENTO DAS TECLAS
    public class MyDispatcher implements KeyEventDispatcher {
    @Override
        public boolean dispatchKeyEvent(KeyEvent e) {
            switch (e.getID()) {
                case KeyEvent.KEY_PRESSED:
                    break;
                    /*nothing to do?*/
                case KeyEvent.KEY_TYPED:
                    break;
                     /*nothing to do?*/
                case KeyEvent.KEY_RELEASED:
                    if (e.getKeyChar() == KeyEvent.VK_F8  && e.getKeyCode() == 119){ **dispose();**
                    break;
                    }
            }
        return false;     
        }
    }

**No construtor depois do initcomponents coloque:**
        //ATIVA O RECONHECIMENTO DAS TECLAS
        KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
        manager.addKeyEventDispatcher(new ViewClientes.MyDispatcher());