为什么这个循环在paint()方法中不起作用?

时间:2013-06-13 21:32:15

标签: java loops for-loop paint

调试并发现错误...

我试过这样做:

public void paint(Graphics g) {
        for (int i = 0; i < mapWidth; i++) {
                g.drawRect (0 + i * (windowWidth/mapWidth), 0, windowWidth/mapWidth, windowHeight/mapHeight);
        }
}
除了我这样做之外,它什么也没有画出来:

g.drawRect(0, 0, 64, 64);

它完美无缺?

2 个答案:

答案 0 :(得分:6)

因为您在我们的第一个代码中将高度调为零,请参阅drawRect的界面:

void    drawRect(int x, int y, int width, int height) 

答案 1 :(得分:0)

这似乎很容易,但通常情况下,错误往往是微不足道的。

您是否检查过您的变量是否会产生值&gt; 0,即

windowWidth/mapWidth   
//This would be 0 if mapWidth > windowWidth assuming both are ints.

其次,在我看来,你使用了两个表示同一事物的变量:

getMapWidth  //Should this be a method?
mapWidth

使用两个变量不是错误。但是,您可能在两个变量之一中设置了不正确的值。