[英]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.