File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Swing / AWT / SWT and the fly likes Mnemonics in JDialog Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Mnemonics in JDialog" Watch "Mnemonics in JDialog" New topic

Mnemonics in JDialog

Cameron Miller

Joined: Jan 10, 2013
Posts: 13

Hi everyone.
I am working on a JDialog for an application I am developing. I want to use mnemonics with my buttons but without having to press Alt for them to come up. Does anyone have a solution to this?
(I would use a KeyListener but I want the letter on the button underlined as well, without pressing Alt)

Here is my code so far (code involving the buttons anyway)...

Nam Ha Minh
Ranch Hand

Joined: Oct 31, 2011
Posts: 502

Hi folk, I am afraid that you cannot change the way mnemonics work, as it always associate with the Alt key.
If you really want to use one key, consider using hot key.

PM Me If You Want to get Urgent Help on Java Programming
Rob Camick
Ranch Hand

Joined: Jun 13, 2009
Posts: 2451
but I want the letter on the button underlined as well, without pressing Alt)

Pressing the Alt is a well defined standard for invoking a button. MS and other companies have spend millions of dollars developing a common UI for Users to use and understand. I don't know why you would try to change this practice.

I would use a KeyListener

Using a KeyListener is not the proper way to attempt to do this. If you really want to go againt all conventions then instead you need to use Key Bindings. Read the section from the Swing tutorial on How To Use Key Bindings. Then it would be a 2 step process:

1) You still have to do what you are doing, that is set the mnemonic so that the letter is underlined
2) Create the key binding using the same Action.

Now the user will have the choice of using either approach.
I agree. Here's the link:
subject: Mnemonics in JDialog
It's not a secret anymore!