我正在使用Graphics2D.drawString()在Graphics2d中绘制各种字符串。这工作正常,但我似乎无法改变字符串的背景颜色;它在渲染时总是使用初始(在这种情况下为白色)背景颜色。
我可以通过获取字体的边界框来模拟这种效果,根据字体的基线位置和高度挖出的位置绘制一个填充的矩形,但这是令人不快的,至少在我的情况下,不太正确 - 填充矩形相对于文本的对齐方式略高。
我不能在drawString()调用之前调用g2d.setBackground(color)吗?
答案 0 :(得分:0)
也许尝试setForeground(Color)
答案 1 :(得分:0)
我可能会弄错,但你是想改变文字背后的文字颜色还是背景?
如果您只是更改文字颜色,您只需要
g2d.setColor(Color.RED); //or whatever your desired color is
在你正在绘制的任何文字之前。
除了在文本后面填充一个矩形之外,我不知道在文本背后设置背景的方法。
祝你好运!答案 2 :(得分:0)
没有。 DrawString不填充文本背景。相反,您可以在DrawString之前绘制填充矩形。正如你所提到的,它并不总是看起来很正确。一种方法可以使用g2d.MeasureString来获取文本矩形,然后稍微扩展一下。