我正在尝试使用单独的整数值绘制多个矩形。
BufferedImage rectImage = bimage.myBImage;
BufferedImage pointImage = bimage.myBImage;
Graphics g = rectImage.createGraphics();
Graphics h = pointImage.createGraphics();
Color rectangle = Color.CYAN;
g.setColor(rectangle);
int alon = -118;
int alat = 34;
int x = (int) Math.round((alon-UL_Lon)/dXLon);
int y = (int) Math.round((UL_Lat-alat)/dYLat);
g.drawRect(x - 5, y - 5, 10, 10);
Color point = Color.BLUE;
h.setColor(point);
h.drawLine(x, y, x, y);
我有alon和alat的多个值,我希望能够输入而不必一遍又一遍地重写代码。
我应该怎样做这样的事情?
答案 0 :(得分:1)
这个问题非常含糊,措辞也不好。我假设从我收集的内容中你想要在不同的地方渲染不同大小的多个矩形。您应该首先定义您想要的矩形数量:
int numberOfRectangles = 5;
然后你应该创建一个可以容纳你定义的矩形数的数组:
Rectangle rectangles[] = new Rectangle[numberOfRectangles];
现在,您必须定义矩形:
rectangles[0] = new Rectangle(7, 64, 32, 32);
rectangles[1] = new Rectangle(64, 18, 4, 32);
你似乎也想设置颜色?所以你可以通过制作一个数组来做到这一点:
Color rectangleColors[] = new Color[numberOfRectangles];
然后还定义它们:
rectangleColors[0] = new Color(255, 48, 128);
rectangleColors[1] = Color.GREEN;
由于系统的原因,您不必一次定义所有矩形。现在,您必须遍历矩形数组并使用render方法渲染每个定义的矩形:
for (int i = 0; i < numberOfRectangles; i++)
{
g.setColor(rectangleColors[i]);
g.fillRect(rectangles[i].getX(), rectangles[i].getY(), rectangles[i].getWidth(), rectangles[i].getHeight());
}
这应该有效,但我还没有用Java测试过。
答案 1 :(得分:0)
如果您希望矩形的值完全随机,那么您必须复制粘贴代码并更改值。但是,如果值是一个序列(例如,您想要创建彼此相邻的20个矩形),则可以使用for
loop。
for(int i=1; i<11; i++){
int x = (int) Math.round((alon-UL_Lon + i)/dXLon);
int y = (int) Math.round((UL_Lat-alat + i)/dYLat);
g.drawRect(x - 5, y - 5, 10, 10);
}
喜欢这个