使用图形java打印矩形



我正在尝试使用单独的整数值绘制多个矩形。

    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的多个值,我希望能够输入这些值,而不必一遍又一遍地重写代码。

我该怎么做这样的事情?

这个问题很模糊,措辞不太好。根据我收集到的信息,我推测您希望在不同的位置渲染多个不同大小的矩形。你应该首先定义你想要多少个矩形:

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;

由于这个系统,你不必一次定义所有的矩形。现在,您必须循环遍历矩形数组,并使用以下渲染方法渲染每个定义的矩形:

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中测试过,但这个应该可以工作。

如果要给矩形的值完全随机,则必须复制粘贴代码并更改值。但是,如果这些值是一个序列(例如,您希望创建20个相邻的矩形),则可以使用for循环。

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);
     }

像这个

最新更新