Fonts 更改图形2D中的字体背景色

Fonts 更改图形2D中的字体背景色,fonts,background-color,graphics2d,Fonts,Background Color,Graphics2d,我正在使用Graphics2d.drawString()在Graphics2d中绘制各种字符串。这很好,但我似乎无法更改字符串的背景色;渲染时,它始终使用初始(在本例中为白色)背景色 我可以通过获取字体的边界框来模拟这种效果,根据其大小在远离字体基线位置和高度的位置绘制一个填充矩形,但这是令人不快的,至少在我的情况下,不太正确-填充矩形相对于文本的对齐度稍微过高 我不能在调用drawString()之前调用g2d.setBackground(color)吗?也许可以尝试设置前景(color)我可

我正在使用Graphics2d.drawString()在Graphics2d中绘制各种字符串。这很好,但我似乎无法更改字符串的背景色;渲染时,它始终使用初始(在本例中为白色)背景色

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


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

也许可以尝试设置前景(color)

我可能弄错了,但是您是否正在尝试更改文本颜色或文本后面的背景

如果您只是更改文本颜色,则只需

g2d.setColor(Color.RED); //or whatever your desired color is
在你画的文本之前

除了在文本后面填充一个矩形外,我不知道有什么方法可以在文本后面设置背景


祝你好运

否。抽绳不能填充文本背景。相反,您可以在DrawString之前绘制一个填充矩形。正如你提到的,它看起来并不总是很正确。工作正常的一种方法是使用g2d.MeasureString获取文本矩形,然后将其稍微展开。

Graphics2D没有setForeground()方法。