JLabel API documentation的第一段陈述:
“标签不会对输入事件做出反应。因此,它无法获得键盘焦点。但是,标签可以显示键盘替代方案,以方便附近有键盘选择的组件但无法显示它。“
我很确定我理解无法获得键盘事件焦点的概念。我不确定的是它的意思是“标签可以显示键盘替代方案,以方便附近有键盘替代但不能显示它的组件。”
什么是键盘替代?为什么附近的组件无法显示?标签如何显示附近组件的键盘替换?
答案 0 :(得分:2)
这意味着,通过JLabel#setDisplayedMnemonic
和JLabel#setLabelFor
的组合,您可以将标签配置为向用户显示激活时的快捷键,并将焦点转移到关联的组件。 / p>
助记符是标签文本中的单个字符,当按下激活键时(Windows上的 Alt ),将允许用户将焦点转移到相关字段。 / p>
例如,如果您的标签包含文字First name:
,则可以将mnemonic
设置为F
,这样就可以让用户按 Alt + F 以关注相关字段。
在Windows下,当您按住 Alt 键时,它将在助记符字符下显示下划线字符。因此,Look and Feels将始终显示此下划线,有些可能会以其他方式突出显示事实
答案 1 :(得分:1)
标签如何显示附近组件的键盘替换?
假设您有一个标签“First Name”,后跟一个文本字段。您可以使用:
JTextField textField = new JTextField(10);
JLabel label = new JLabel("First Name");
label.setLabelFor( textField );
label.setDisplayedMnemonic(KeyEvent.VK_F);
现在,当用户使用Alt-F
时,焦点将放在相关的文本字段上。