- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Java 很陌生,发现自己在循环方面遇到了一些麻烦。我首先要设计一个简单的小程序来 build 一座房子,我的代码如下:
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 次的循环,每次新房子必须采用不同的颜色并位于不同的位置。我无法理解如何让小程序循环。如有任何帮助,我们将不胜感激!
最佳答案
您不循环小程序。您在小程序中循环,如 arg0's answer说明。
您在整个绘画方法中都使用了魔法数字。您需要将魔数(Magic Number)更改为字段,以便可以更改变量。
您需要做的第一件事是重构您的绘制方法,以便您拥有很多小方法。您应该有一个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、宽度和高度值传递给该方法是一个好方法。
关于java - 构建 Java 小程序以使用循环绘制一系列房屋,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17507874/
如何使用 Java2D 绘制简单的 3D 房屋?我想绘制房子的侧墙,使其看起来像一个简单的 3D 绘图。 //House.java import java.awt.Canvas; import jav
假设我想通过在具有以下映射的房屋图像训练集上训练 CNN 来了解房屋的 build 时间: Input Pictures [244, 244, 3] -> Output Year [1850, 185
我是一名优秀的程序员,十分优秀!