For example, say I have a series of toolbar-style buttons across the top of my application's main window. I want to attach a mnemonic to one of these that's just a single keypress, like F3.
When you set the mnemonic to KeyEvent.VK_F3
, the user has to press Alt+F3.
If you have a menu item, you can set an accelerator, rather than a mnemonic, and choose whether to use a meta key. Buttons don't let you set an accelerator, however.
Is there a way to turn of the meta-key for button mnemonics?
Actions can bind a chunk of code to a menu item, a keystroke, a button and anything else you are interested.
In general, don't think of your code as tied to a specific keypress/event--and don't use anonymous inner classes. Instead use real classes where your code can be reused for different types of things. That pattern used by the Action class gives some good examples of this.
Well behind the scenes, whether you use an accelerator or a mnemonic on a component, the method will create a Key Binding for you.
So there is nothing to prevent you from binding a KeyStroke and Action to whatever component you want and manually create the Key Binding. It can even be a component that doesn't have the setMNemonic(...) method.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With