You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何修改g.drawString绘制的文本颜色 实现指定字符串显示为红色

问题原因

g.setColor()是修改Graphics画笔全局颜色属性的方法,没有可用于字符串拼接的有效返回值,你将它写在drawString的字符串参数内的写法完全无法生效,还会额外拼接无效内容到显示文本中。

解决方案

场景1:整段文本(包含Task: 前缀)全部显示为红色

直接修改原有颜色设置即可:

// 将画笔颜色从白色改为红色
g.setColor(Color.red);
g.drawString("Task: " + currentTask, 13, 60);
// 若后续需要绘制其他白色内容,执行以下语句重置颜色
// g.setColor(Color.white);

场景2:仅currentTask部分显示为红色,Task: 前缀保留白色

单次drawString调用只能使用同一种颜色,因此需要拆分两次绘制,通过计算前缀宽度定位第二段文本的位置:

g.setColor(Color.white);
String prefix = "Task: ";
// 先绘制白色前缀
g.drawString(prefix, 13, 60);
// 计算前缀的像素宽度,得到currentTask的起始x坐标
int prefixWidth = g.getFontMetrics().stringWidth(prefix);
// 切换颜色为红色后绘制currentTask
g.setColor(Color.red);
g.drawString(currentTask, 13 + prefixWidth, 60);

内容的提问来源于stack exchange,提问作者devpeterrrrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:42:00