java - 让 setMnemonic 下划线字符而不是第一次出现

标签 java swing

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

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

下划线是“Use”中的“U”而不是“UPPERCASE”中的“U”。由于用户的眼睛自然会被“UPPERCASE”吸引以寻找助记符,因此装饰的默认位置有点不直观。

是的,我已经阅读了文档和教程,它们说助记字符的第一个实例带有下划线,但这不是我想要的。它经常出现,我不敢相信我是唯一对此感到沮丧的人。肯定有人比我聪明已经想出了如何将装饰放置在不同于默认位置的地方。

最佳答案

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

Provides a hint to the look and feel as to which character in the text should be decorated to represent the mnemonic.

关于java - 让 setMnemonic 下划线字符而不是第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1847477/

相关文章:

java - 如何在jButton右侧添加复选框?

java - 不确定我是否正确编写了返回 true 或 false 的方法

java - 创建类并进入框架

java - 使用 .overlaps 方法检测碰撞/重叠

java - JPA 2.1 具有函数的列的索引注释

java - 如何通过动态数组或 ArrayList 使用数据库中的值填充 JTable

java - 有没有办法更改 JDialog 的所有者?

java - JTabbedPane 中具有相等(恒定)宽度的选项卡

java - 使用集合映射

java - 如何防止在页面加载期间在文本框中重新键入文本