Graphics2D drawString() 不同的颜色

Graphics2D drawString() different colour

我有这个 Graphics2D g 对象。目前它呈现一个蓝色矩形。我想要的是能够在这个矩形中放置一个标签,但是由于 g.setPaint(Color.BLUE) 设置了整个颜色,任何使用 g.drawString(..) 呈现的文本也是蓝色的,并且在正方形中看不到。所以现在 "foo" 坐在矩形的旁边,我怎样才能把它变成不同的颜色 o 我可以把它放在矩形里?

(所有的矩形都需要有标签)

我考虑过制作 Graphics2D 对象的副本,并以相同的方式渲染它,但仅使用文本。唯一的问题是我不确定如何克隆 Graphics2D 对象。有什么见解吗?

but seeing as the g.setPaint(Color.BLUE) sets the entire colour,

不要使用setPaint(...)

您可以使用 setColor(...):

g.setColor( Color.BLUE );
g.fillRect(...);
g.setColor( Color.WHITE );
g.drawString(...);

只需在需要设置颜色时设置颜色即可。

g2d.setColor(BAR_COLOR);
g2d.fill(bar);
g2d.setColor(TEXT_COLOR);
g2d.drawString(....);

这很可能在我想象的 for 循环中。

只需设置颜色,使用.setColor(Color c)方法。

g.setColor(Color.WHITE);