English 中文(简体)
Java JMenuItem Accelator Snow Leopard
原标题:
about = new JMenuItem("About");
about.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A((Toolkit.getDefaultToolkit().getMenuShortcutMask()))));
JMenu help = new JMenu("Help");
help.add(about);

I was wondering why my aaccelerators were not working. I am running this in snow leopard with JavaSe-1.6 VM. They do work if I pull the menu down then try the key sequence. Thanks

问题回答

Ooh, I think I understand the REAL problem:

Accelerators only work when they re visible - they allow you to move through the menu by making some character in a menu item "magic".

I think what you re looking for are mnemonics. Those will fire off your menu items from anywhere when the associated key is pressed.

Common mnemonics are Alt-F4 to kill programs (that s Cmd-Q for you), Ctrl-S to save, Ctrl-C to copy, etc.

Line 2 looks like an error to me.

Shouldn t it be something like

getKeyStroke(KeyEvent.VK_A, Toolkit...getMenuShortcutMask()) 

?

i.e. getKeyStroke has 2 arguments, separated by a comma.

Using Toolkit...getMenuShortcutMask to get the OS dependent key is a very clever idea, by the way. I d never thought to do that.

Sorry, line two isn t correct. I must have accidentally added that K :-) I was using a mnemonics before but it also had to have the menu pulled down to function. I just want a keyboard shortcut. I switched to using accelerators because that what the OSX java doc suggests.





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签