我对Java很新,发现自己在循环时遇到了一些麻烦。我首先要设计一个简单的小程序来构建一个房子,我有以下代码:
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Polygon;
public class Houseref extends Applet
{
public void paint (Graphics page)
{
Polygon poly = new Polygon(); // Roof Polygon
poly.addPoint (50,90);
poly.addPoint (150, 50);
poly.addPoint (250, 90);
page.setColor (new Color(218,165,32)); // Custom brown color
page.fillPolygon (poly);
page.setColor (Color.black);
page.drawLine (50, 90, 150, 50); // Roof outline
page.drawLine (150, 50, 250, 90);
page.setColor (Color.yellow);
page.fillRect (50, 90, 200, 100); // House base with houseColor
page.setColor (Color.black);
page.drawRect (50, 90, 200, 100); // House outline
page.setColor (Color.black);
page.fillRect (75, 110, 30, 25); // Window 1
page.fillRect (190, 110, 30, 25); // Window 2
page.setColor (Color.blue);
page.drawLine (75, 123, 105, 123); // Window Frame 1
page.drawLine (89, 110, 89, 134);
page.fillRect (70, 110, 5, 25); // Shutter 1
page.fillRect (105, 110, 5, 25); // Shutter 2
page.drawLine (75+115, 123, 105+115, 123); // Window Frame 2
page.drawLine (89+115, 110, 89+115, 134);
page.fillRect (70+115, 110, 5, 25); // Shutter 3
page.fillRect (105+115, 110, 5, 25); // Shutter 4
page.setColor (Color.blue);
page.fillRect (130, 150, 35, 40); // Door
page.setColor (Color.red);
page.fillOval (155, 170, 4, 4); // Door knob
}
}
现在我需要创建一个迭代5次的循环,每次新房子必须使用不同的颜色并且位于不同的位置。我无法理解如何让applet循环。任何帮助表示赞赏!
答案 0 :(得分:0)
这是一个迭代5次的循环。
for(int i = 0; i < 5; i++){
/* Your_code_here */
}
我希望这会有所帮助,如果没有,请告诉我。
答案 1 :(得分:0)
您不循环applet。你可以在applet中循环,如arg0's answer所示。
你通过paint方法使用了魔法数字。您需要将幻数更改为字段,以便更改变量。
你需要做的第一件事是重构你的绘画方法,这样你就有很多小方法。你应该有一个drawWall方法,drawRoof方法,drawDoor方法和你调用两次的drawWindow方法。
我假设不同颜色的房子你的意思是墙应该是不同的颜色。您将颜色传递给您创建的墙方法作为参数。
这是一个重构的drawWall方法,所以你可以看到我在说什么。你需要以这种方式分解其余的绘画方法。
private void drawWall(Graphics page, Color color, int x, int y, int width,
int height) {
page.setColor(color);
page.fillRect(x, y, width, height); // House base with houseColor
page.setColor(Color.black);
page.drawRect(x, y, width, height); // House outline
}
Rectangle class是将x,y,width和height值传递给方法的好方法。