我曾经在点击此代码后强调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,我将改变什么?
先谢谢你了!
答案 0 :(得分:3)
事实证明TextAttribute.UNDERLINE_OFF
不是真正的常数。所以我咨询了TextAttribute#UNDERLINE
documentation:
public static final TextAttribute UNDERLINE
下划线的属性键。值是
Integer
的实例。默认值为-1
,表示没有下划线。提供常量值
UNDERLINE_ON
。下划线影响视觉边界和文本轮廓。
事实证明,默认值为-1
。因此,要将文本还原为不加下划线,请使用:
attributes.put(TextAttribute.UNDERLINE, -1);
答案 1 :(得分:0)
答案attributes.put(TextAttribute.UNDERLINE, -1);
对我不起作用。
但是:
label.setFont(new Font(font.getName(), font.getStyle(), font.getSize()));
有效!