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

Java AWT Canvas:如何在同一窗口绘制多颜色图形?

解决Java AWT单图形独立设置颜色的问题

你当前的问题出在调用setForeground()方法上——这个方法是修改Canvas组件本身的前景色,组件关联的Graphics对象默认会继承这个颜色,后续所有绘制操作都会使用新的前景色,重绘时所有图形都会用新颜色重新渲染,导致看起来所有图形颜色都被改变。

要实现单个图形独立设置颜色,你应该直接操作Graphics对象的颜色,而非修改组件的前景色。具体使用Graphics.setColor()方法为每个绘制的图形单独指定颜色:

setBackground(Color.WHITE);
// 给当前Graphics对象设置黑色,绘制第一个矩形
g.setColor(Color.BLACK);
g.fillRect(20,20,10,30);
// 切换Graphics对象颜色为蓝色,绘制第二个矩形
g.setColor(Color.BLUE);
g.fillRect(40,40,20,30);

setColor()方法只会影响后续通过该Graphics对象执行的绘制操作,已经完成的图形不会被修改,这样就能实现每个图形的颜色独立控制,不会互相干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 02:04:51