【发布时间】:2016-04-10 02:35:45
【问题描述】:
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 中为文本加下划线,这是我发现的唯一代码块,stackoverflow 上的其他人似乎都理解这一点,除了我???地图是一个类吗?
【问题讨论】:
-
从技术上讲,Map 是一个接口,但您可以将其视为一个类。我想attributes是一个HashMap,它实现了Map。
-
@billjamesdev 所以映射属性 = font.getAttributes();是接口的初始化吗?
-
嗯,不,属性包含键值对“列表”中字体的所有属性。 List 是这样的 ["value1", "value2"],而 Map 是这样的 ["attrName": "attrValue", "attrName2": "attr2Value" ]。地图值是通过键(上面的“attrName”)而不是通过索引(如列表)检索的
-
你在上面的问题对我来说很好。您是否看到了标签,只是没有下划线?还是标签根本没有显示(在这种情况下,可能是因为您没有将它添加到视图中)?