L'aggiunta di scorciatoie agli elementi di sottomenu JMenuBar nella finestra di progettazione di Java Swing è ovvia, ma come vengono aggiunte le scorciatoie alle voci del menu principale di JMenuBar?Come aggiungere le scorciatoie di JMenuBar?
risposta
Hai due tipi di scorciatoie da tastiera: mnemonici e acceleratori.
I mnemonici vengono generalmente attivati utilizzando Alt + KEY. Questa è la lettera sottolineata nel testo della voce di menu (ad esempio F per File). Gli acceleratori sono scorciatoie a livello di applicazione che di solito vengono attivate utilizzando Ctrl + KEY.
Per utilizzare mnemonici, è possibile utilizzare il metodo setMnemonic()
:
menuItem.setMnemonic('F');
Per utilizzare gli acceleratori, è necessario utilizzare il metodo setAccelerator()
.
menuItem.setAccelerator(KeyStroke.getKeyStroke(
java.awt.event.KeyEvent.VK_S,
java.awt.Event.CTRL_MASK));
Grazie. 'menuItem.setMnemonic ('F');' ha fatto esattamente ciò che era necessario. – jacknad
Si noti che 'setMnemonic' usa sempre la prima occorrenza della lettera (vedere' SwingUtilities # findDisplayedMnemonicIndex'). Se è necessario utilizzare un'ultima occorrenza, utilizzare 'AbstractButton # setDisplayedMnemonicIndex', che corrisponde a' Action.DISPLAYED_MNEMONIC_INDEX_KEY'. (A proposito, ti consiglio di impostare le proprietà dell'azione e chiamare 'AbstractButton # setAction' invece di chiamare direttamente i metodi di JComponent.) –
Qual è la differenza tra accelerator e setMnemonic? –
Il sito Sun/Oracle ha un grande tutorial su come utilizzare JMenu's Quando si tratta di tasti di scelta rapida, Java utilizza mnemonico o acceleratore a seconda del collegamento che si desidera utilizzare. è possibile impostare il mnemonica usando la seguente
menuItem.setMnemonic(KeyEvent.VK_T);
e l'acceleratore via
menuItem.setAccelerator(KeyStroke.getKeyStroke(
KeyEvent.VK_T, ActionEvent.ALT_MASK));
Questi sono entrambi esempi tratti dal link qui sopra
Sei alla ricerca di un modo per farlo programatically o attraverso il designer della GUI? Se il progettista della GUI, quale IDE stai usando? È questo Netbeans? –
Mi piacerebbe sapere come farlo programmaticamente? –