包含HTML的JLabel的setDisplayedMnemonicIndex(int idx)

时间:2013-07-12 05:09:05

标签: java html swing jlabel

我正在尝试使用助记符创建一个包含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

感谢任何回答。

2 个答案:

答案 0 :(得分:2)

  

还有其他方法吗?

不确定。只需设置一个大的Font,而不是在组件中使用HTML。如果使用HTML,那就会出现奇怪的怪癖。

答案 1 :(得分:0)

快速查看Javadoc,如果索引等于其内容的长度或小于-1,则抛出IllegalArgumentException。您的JLabel技术上只包含此字符串:“标签8”。 HTML内容不包含在内。因此,您的给定索引16大于字符串8的长度,而该字符串将依次抛出IllegalArgumentException