2016-04-05 8 views
0

Für meine Swing-Anwendung ein JMenuItem hat den Beschleuniger wie folgt festgelegt:JMenuItem Beschleuniger Text einstellen, nicht nur Aktion

JMenuItem numFieldsMI = new JMenuItem("Set Number of Fields"); 
numFieldsMI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, 
     ActionEvent.CTRL_MASK+ActionEvent.SHIFT_MASK)); 

wird, wenn die GUI intitialized wird, macht den Text neben dem Menüpunkt lesen Sie „Strg + Shift + 3 "aber natürlich ist der Text" Strg + # ". Wie kann ich das machen?

+0

Ich denke 'ActionEvent.CTRL_MASK + ActionEvent.SHIFT_MASK' sollte' ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK' ... – MadProgrammer

+0

Ich hatte ein Spiel mit 'KeyStroke.getKeyStroke (KeyEvent.VK_NUMBER_SIGN, ActionEvent.CTRL_MASK)' und 'KeyStroke.getKeyStroke (KeyEvent.VK_NUMBER_SIGN, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK)' und keiner von beiden triggert den 'ActionListener' des Menüs, 'KeyEvent.VK_3, ActionEvent.CTRL_MASK | ActionEvent.SHIFT_MASK) 'hat funktioniert, obwohl" Strg + Umschalt + 3 "angezeigt wurde ... damit Sie anzeigen können, was Sie wollen oder arbeiten, Ihre Wahl – MadProgrammer

Antwort

0

ändern

numFieldsMI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, 
     ActionEvent.CTRL_MASK+ActionEvent.SHIFT_MASK)); 

zu

numFieldsMI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_3, 
     ActionEvent.CTRL_MASK ***|*** ActionEvent.SHIFT_MASK)); 
Verwandte Themen