2009-12-04 28 views
2

在重新实现现有程序时,我想保留用户熟悉的消息文本。我想添加的增强功能之一是包含助记符的良好键盘接口。但在现有文本中使用直观的助记符会带来一些难看的结果。例如:已将setMnemonic加下划线除首次出现以外的其他字符

useUpperCheckBox = new JCheckBox("Use UPPERCASE letters"); 
    useUpperCheckBox.setMnemonic(KeyEvent.VK_U); 

强调“使用”中的“U”而不是“大写”中的“U”。由于用户的眼睛自然被吸引到寻找助记符的“大写字母”,所以装饰的默认位置有点不直观。

是的,我已阅读文档和教程,指出助记符的第一个实例是加下划线的,但这不是我想要的。它经常出现,我不能相信我是唯一受挫的人。当然,比我更聪明的人已经想出了如何将装饰放置在与默认位置不同的地方。

回答

8

使用来源,卢克。综观setMnemonic()源代码,使我迅速AbstractButton.setDisplayedMnemonicIndex()

提供一个提示的外观和感觉 哪个字符在文本 应该被装饰用来表示助记符 。

+0

完美!感谢指针。 – clartaq 2009-12-04 15:07:41

+0

+1教导如何找到答案,而不仅仅是给出答案。 – Nemi 2009-12-06 17:23:43

0

我知道这是不是这里的情况,但它关系:

如果使用AbstractAction,尝试putValue(DISPLAYED_MNEMONIC_INDEX_KEY, index);