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

Java AWT Graphics类绘制8行3列方块布局错误问题求助

问题分析与修正代码

你代码的问题主要有3处:

  • 循环边界设置错误,原本的row < 3、col < 4完全不符合8行3列的需求
  • 单次循环内重复调用2次fillRect,额外多画了一行,导致最终只有2行的结果
  • 每行绘制完成后没有重置x坐标为初始值,也没有向下偏移y坐标,导致所有方块都往水平方向累加,列数变成12列

修正后的可实现预期效果的代码如下:

g.setColor(Color.WHITE);
int initX = 70; // 初始x坐标,单独存储方便后续调整
int y = 80;
int w = 30;
int h = 35;
int colGap = 15; // 列间距
int rowGap = 20; // 行间距
int totalRow = 8; // 总行数
int colPerRow = 3; // 每行方块数

for(int row = 0; row < totalRow; row++) {
    int x = initX; // 每行开始前重置x为初始左对齐位置
    for(int col = 0; col < colPerRow; col++) {
        g.fillRect(x, y, w, h);
        x += w + colGap; // 每画完一个方块x向右偏移
    }
    y += h + rowGap; // 每画完一行y向下偏移,实现换行
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 06:15:02