带下划线的 JLabel

Posted

技术标签:

【中文标题】带下划线的 JLabel【英文标题】:Underlined JLabel 【发布时间】:2013-03-31 08:18:32 【问题描述】:

我正在尝试为 JLabel 加下划线。我到处寻找,但我什么也没得到。即使在属性中,也没有为 JLabel 加下划线的选项。我能做什么?

【问题讨论】:

【参考方案1】:
JLabel label = new JLabel("Underlined Label");
Font font = label.getFont();
Map<TextAttribute, Object> attributes = new HashMap<>(font.getAttributes());
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
label.setFont(font.deriveFont(attributes));

【讨论】:

+1。此外,label.getText() 现在将返回实际的预期文本,而不是 html 标记。 最好使用Map&lt;TextAttribute, Object&gt; attributes = new HashMap&lt;&gt;(font.getAttributes());来避免编译器警告unchecked call to put(k v) (...)【参考方案2】:
JLabel label = new JLabel("<HTML><U>YOUR TEXT HERE</U></HTML>");
label.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

JLabel label = new JLabel("Underlined Label");
Font font = label.getFont();
Map attributes = font.getAttributes();
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
label.setFont(font.deriveFont(attributes));

【讨论】:

别忘了关闭你的标签! @Clark 没关系 @devaldcool,即使没关系,至少应该遵循一个好的做法来养成良好的习惯。粗心的编码是通往黑暗面的道路。粗心的编码会导致不良习惯。坏习惯会导致代码损坏。破坏代码导致痛苦。 @hfontanez 我确定在阅读了您的评论后,您可以在弹出之前安全地移除 pendrive,或者用左手握住叉子……生活很简单,伙计……不要浪费时间关闭标签或安全取出随身碟,像你以前从未吃过的一样吃 我应该把这些代码放在哪里? initComponents() 不可编辑,我使用的是 Netbeans 8

以上是关于带下划线的 JLabel的主要内容,如果未能解决你的问题,请参考以下文章

java中怎么设置label的字体大小及颜色显示

在 Java 中检查文本的字体属性

如何从PDF文件中获取带下划线的文本?

PDF找出文本是不是带下划线或表格单元格

Winforms MenuStrip 带下划线的热键字母

验证用户名是不是为带下划线的字母数字