有人可以解释一下这是如何工作的吗?

Can someone explain how this works please?

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));

今天我已经看到这段代码至少 100 多次,我也尝试了 100 多次,但每次都不起作用。我试图在 JLabel 中给文本加下划线,这是我找到的唯一代码块,Whosebug 上的其他人似乎都理解这一点,除了我???地图是 class 吗?

因此,根据您的问题和评论,您的代码在某处创建了一个名为 topCaption 的 JLabel,将其添加到一个名为 viewWindow 的 JPanel 中,您可以在结果中看到该标签。

所以你有:

JLabel topCaption = new JLabel( you may have some stuff here );

之后,立即执行此操作:

Font font = topCaption.getFont();
Map attributes = font.getAttributes();
attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
topCaption.setFont(font.deriveFont(attributes));

此外,我建议您在继续阅读之前需要多读一些书,因为地图是什么等知识对于大多数 UI 编程来说都是非常基础的,您将如果没有一些基本知识,继续遇到这样的麻烦。