开发者

question about drawing with out java2D

I have another question, this is also extra credit and not homework. This time I need to create a border with out using java2d. The instructions are... Write a method called drawRectangleBorder having six parameters which does not use the graphics package. It draws a rectangular border starting at the x and y coordinates given as the first t开发者_如何学Pythonwo parameters, having a width and height given by the third and fourth parameters, the width of the border given by the fifth parameter in the color given by the sixth parameter. The parameter list is: x, y, width, height, borderWidth, color

I used a previous method I made to create a border around the outside of a picture but the best I can make it do now is a couple scattered boxes. The most recent version will not show anything

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

Again I thank you for any input.


You can alter the pixels in a java.awt.BufferedImage as shown here.


I might be too sleepy but I think your forgetting to set the pixel back into this (whatever this is ^^)

I'm guessing this.getPixel sends your back a copy so you might want to do something like

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜