【发布时间】:2014-12-26 21:25:38
【问题描述】:
我是第一次学习 Java 和编程。我正在使用BlueJ 环境。
我正在编写一个程序来绘制多边形。我想在画完每条线后改变颜色。为此,我想我会创建一个颜色数组,然后使用伪随机数生成器生成一个值,该值将用作从数组中获取颜色的索引。我已经包含了来自构造函数方法的代码 sn-p,因为有人告诉我,我需要在构造函数中创建数组才能使其工作。
需要注意的是,我已经导入了 java.awt.Color 以及 java.util.Random。我也加入了
private Color[] colors;
作为一个字段。
public PictureMaker()
{
world = new TurtleWorld(500, 500, "Picture Maker");
fred = new Turtle();
//Allocate the size of the array
colors = new Color[7];
//Initialize the values of the array
colors[0] = new Color(Color.red);
colors[1] = new Color(Color.blue);
colors[2] = new Color(Color.yellow);
colors[3] = new Color(Color.green);
colors[4] = new Color(Color.black);
colors[5] = new Color(Color.pink);
colors[6] = new Color(Color.orange);
}
下面是绘制多边形的实际方法的代码。
/**
* This method takes sides (int) as input and draws a polygon with that number of sides.
*/
public void drawPolygon(int sides)
{
world.dropIn(fred);
fred.penDown();
int angle = 360/sides;
int linesDrawn = 0;
while(linesDrawn < sides)
{
Random r = new Random();
int minColor = 0;
int maxColor = 10;
int R = r.nextInt(maxColor-minColor) + minColor;
fred.right(angle);
fred.forward(60);
linesDrawn += 1;
}
}
我还没有包含任何东西来从数组中获取颜色,因为我无法让数组工作。
我收到一条错误消息Incompatible types: java.awt.Color cannot be converted to int。
我不知道为什么它不起作用。
我希望这是有道理的。
如果您需要澄清,请告诉我,我是使用此网站的新手。
【问题讨论】:
-
你有什么问题?
-
请注意,您正在为 Javascript 创建 sn-ps,这与 Java 非常不同。
-
我马上看到的一个问题是您正在生成一个介于 1-10 之间的数字,而您的数组只有 7 个元素...
-
你从哪里得到错误?
-
@brso05 谢谢,我在更改颜色数量后忘记更新了