java - 从 JLabel 文本中删除下划线

标签 java swing jlabel

单击此代码后,我曾经在 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 documentation :

public static final TextAttribute UNDERLINE

Attribute key for underline. Values are instances of Integer. The default value is -1, which means no underline.

The constant value UNDERLINE_ON is provided.

The underline affects both the visual bounds and the outline of the text.

事实证明默认值是-1。因此,要将文本恢复为不带下划线的状态,只需使用:

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

关于java - 从 JLabel 文本中删除下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38784076/

相关文章:

java - 如何将电子邮件和密码值保存在从选择查询检索到的变量中

java - 当用户得到正确答案时递增变量

java - 具有多行并向右对齐的 JLabel

java - 如何给面板添加滚动条?

java - 使用 JButton 作为图像

Java Swing - 位置测量单位?

java - 设计 ByteArrayOutputStream 公共(public)接口(interface)的理由?

java - 使用反编译的java代码

java - JDialog,错误显示查询?

java - 如何用始终在最上面的对话框结束 Swing 程序?