在Graphics2D中更改字体背景颜色

时间:2012-08-25 19:11:38

标签: fonts background-color graphics2d

我正在使用Graphics2D.drawString()在Graphics2d中绘制各种字符串。这工作正常,但我似乎无法改变字符串的背景颜色;它在渲染时总是使用初始(在这种情况下为白色)背景颜色。

我可以通过获取字体的边界框来模拟这种效果,根据字体的基线位置和高度挖出的位置绘制一个填充的矩形,但这是令人不快的,至少在我的情况下,不太正确 - 填充矩形相对于文本的对齐方式略高。​​

我不能在drawString()调用之前调用g2d.setBackground(color)吗?

3 个答案:

答案 0 :(得分:0)

也许尝试setForeground(Color)

答案 1 :(得分:0)

我可能会弄错,但你是想改变文字背后的文字颜色还是背景?

如果您只是更改文字颜色,您只需要

g2d.setColor(Color.RED); //or whatever your desired color is
在你正在绘制的任何文字之前

除了在文本后面填充一个矩形之外,我不知道在文本背后设置背景的方法。

祝你好运!

答案 2 :(得分:0)

没有。 DrawString不填充文本背景。相反,您可以在DrawString之前绘制填充矩形。正如你所提到的,它并不总是看起来很正确。一种方法可以使用g2d.MeasureString来获取文本矩形,然后稍微扩展一下。