setMnemonic为第一次出现的字符加下划线

时间:2009-12-04 14:57:46

标签: java swing

在重新实现现有程序时,我想保留用户熟悉的消息文本。我想添加的一个增强功能是一个很好的仅键盘界面,包括助记符。但是使用直观的助记符和现有文本会产生一些难看的结果。例如:

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

在“使用”中强调“U”,而不是“大写”中的“U”。由于用户的眼睛自然被“大写”寻找助记符,因此装饰的默认位置有点不直观。

是的,我已经阅读了文档和教程,说明了助记符的第一个实例是下划线,但这不是我想要的。经常出现这种情况,我无法相信我是唯一一个对此感到沮丧的人。当然,比我聪明的人已经想出如何将装饰放置在与默认位置不同的地方。

3 个答案:

答案 0 :(得分:9)

使用来源,卢克。查看setMnemonic()的源代码,我很快就找到了AbstractButton.setDisplayedMnemonicIndex()

  

提供外观的提示   关于文本中的哪个字符   应该装饰来代表   助记符。

答案 1 :(得分:1)

我认为你要找的是:setDisplayedMnemonicIndex(int index)

答案 2 :(得分:0)

我意识到这不是这里的情况,但它是相关的:

如果您使用的是AbstractAction,请尝试putValue(DISPLAYED_MNEMONIC_INDEX_KEY, index);