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