java swing向字体属性添加颜色
我尝试将 Color 添加到 java.awt.Font 的属性中,如下所示:
font.getAttributes().put(TextAttribute.FOREGROUND, jColorChooser.getColor());
但出现错误
方法 put(TextAttribute, capture#12-of ?) 在类型中 地图是 不适用于参数 (文本属性,颜色)
字体 API 说
此字体仅识别定义的键 在 TextAttribute 中作为属性 和 FOREGROUND存在于 TextAttribute
我做错了什么吗?
I tried to add Color to java.awt.Font's attributes like this:
font.getAttributes().put(TextAttribute.FOREGROUND, jColorChooser.getColor());
But I get the error
The method put(TextAttribute,
capture#12-of ?) in the type
Map is
not applicable for the arguments
(TextAttribute, Color)
The Font API says
This Font only recognizes keys defined
in TextAttribute as attributes
And FOREGROUND is a present in TextAttribute
Am I doing something wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
事实上,要更改字体,您不能直接更改其属性,因为 Swing 字体应该是不可变的。
因此,您必须调用其
Font#deriveFont(Map)
方法,设置了新的属性。这将创建具有给定属性集的新字体,并因此创建新颜色。
In fact, to change a font, you can't change directly its attributes, as Swing fonts are supposed to be immutable.
As a consequence, you have to call its
Font#deriveFont(Map)
method with a new attribute set.This will create a new font with the given attribute set and, as a consequence, new color.