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
相关产品推荐
相关产品推荐

