关于用java2D绘制的问题

时间:2011-05-13 01:45:24

标签: java

我有另一个问题,这也是额外的功劳而不是功课。这次我需要使用java2d创建一个边框。说明是...... 编写一个名为drawRectangleBorder的方法,该方法有六个不使用图形包的参数。它绘制一个矩形边框,从作为前两个参数给出的x和y坐标开始,具有由第三个和第四个参数给出的宽度和高度,由第六个参数给出的颜色中第五个参数给出的边框宽度。参数列表为:x,y,width,height,borderWidth,color

我使用了之前的方法来创建一个围绕图片外部的边框,但我现在可以做的最好的是几个分散的盒子。最新版本不会显示任何内容

public void drawRectangleBorder(
        int x, int y, int width, int height, int border, Color newColor) {
    int startX = 0;
    int startY = 0;

    // top and bottom  
    for (startX = x; x < width; x++) {
        for (startY = y; y < border; y++) {
            // top pixel
            this.getPixel(startX, startY).setColor(newColor);
            // bottom pixel
            this.getPixel(startX + width, startY + height).setColor(newColor);
        } // for-y
    } // for-x

    // left and right  
    for (startX = x; x < border; x++) {
        for (startY = y; y < height; y++) {
            // left pixel
            this.getPixel(startX, startY).setColor(newColor);
            // right pixel
            this.getPixel(startX + width, StartY + height).setColor(newColor);
        } // for-y
    } // for-x

    return;
} // end drawRectangleBorder

我再次感谢你的任何意见。

2 个答案:

答案 0 :(得分:0)

您可以更改java.awt.BufferedImage中的像素,如here所示。

答案 1 :(得分:0)

我可能太困了,但我认为你忘记将像素设置回来(无论这是^^)

我猜这个.getPixel向你发送了一份副本,所以你可能想做类似的事情

Pixel p = this.getPixel( startX, startY );
p.setColor(newColor);
this.setPixel(startX, startY, p);