繁体   English   中英

从 JLabel 文本中删除下划线

[英]Remove the underline from a JLabel text

单击此代码后,我曾经在 JLabel 文本下划线:

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));

所以现在我需要将它恢复到它的第一个状态(没有下划线),一旦另一个 JLabel 被点击,我应该改变什么?

先谢谢了!

事实证明TextAttribute.UNDERLINE_OFF不是一个真正的常量。 所以我查阅了TextAttribute#UNDERLINE文档

 public static final TextAttribute UNDERLINE

下划线的属性键。 值是Integer实例。 默认值为-1 ,这意味着没有下划线。

提供了常量值UNDERLINE_ON

下划线影响文本的视觉边界和轮廓。

事实证明,默认值是-1 因此,要将文本恢复为没有下划线,只需使用:

attributes.put(TextAttribute.UNDERLINE, -1);

答案attributes.put(TextAttribute.UNDERLINE, -1); 对我不起作用。

但是:

label.setFont(new Font(font.getName(), font.getStyle(), font.getSize())); 

作品!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM