簡體   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