我正在尝试使用助记符创建一个包含HTML文本的JLabel
。它工作正常。我能够抓住设置标签的组件的焦点。
但我在指定的助记符索引下看不到下划线。这是一段代码摘录
JLabel l=new JLabel("<html><h2>Label 8</h2></html>");
l.setDisplayedMnemonic('8');
l.setDisplayedMnemonicIndex(16);
除了使用HTML手动加下划线的答案,如
JLabel l=new JLabel("<html><h2>Label <u>8</u></html>");
还有其他方法吗?
顺便说一下,我没有得到IllegalArgumentException
感谢任何回答。
答案 0 :(得分:2)
还有其他方法吗?
不确定。只需设置一个大的Font
,而不是在组件中使用HTML。如果使用HTML,那就会出现奇怪的怪癖。
答案 1 :(得分:0)
快速查看Javadoc,如果索引等于其内容的长度或小于-1,则抛出IllegalArgumentException
。您的JLabel
技术上只包含此字符串:“标签8”。 HTML内容不包含在内。因此,您的给定索引16大于字符串8的长度,而该字符串将依次抛出IllegalArgumentException
。