0

你好)帮助解决问题:我们需要创建一个绿色的方形图像并显示它。

我可以画一个正方形,但我需要使用 java 创建它。请帮我这样做)这就是我试图做的:

import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;

public class Game extends Canvas {

    private static final long serialVersionUID = 1L;

    private static final int WIDTH = 400;
    private static final int HEIGHT = 400;


    @Override
    public void paint(Graphics g) {
        super.paint(g);

        int w = 10;
        int h = 10;
        int type = BufferedImage.TYPE_INT_ARGB;

        BufferedImage image = new BufferedImage(w, h, type);

        int color = 257; // RGBA value, each component in a byte

        for (int x = 1; x < w; x++) {
            for (int y = 1; y < h; y++) {
                image.setRGB(x, y, color);

                g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
            }
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();

        frame.setSize(WIDTH, HEIGHT);
        frame.add(new Game());

        frame.setVisible(true);
    }
}

但什么都没有显示(

让我提醒一下目标 - 以绿色方块的形式创建图片,帮助制作它)

4

3 回答 3

1

最简单的方法是简单地使用图形 API ...

@Override
public void paint(Graphics g) {
    super.paint(g);

    int w = 10;
    int h = 10;
    g.setColor(Color.GREEN);
    g.fillRect(0, 0, width, height);
}

但是有些事情告诉我这不是您想要的,但它确实构成了实现结果所需的基础。

首先将图像作为实例字段...

private BufferedImage image;

然后你需要创建图像...

int type = BufferedImage.TYPE_INT_ARGB;
image = new BufferedImage(w, h, type);
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.GREEN);
g2d.fillRect(0, 0, w, h);
g2d.dispoe();

然后在你的paint方法中,你需要绘制图像......

g.drawImage(image, x, y, this);

查看2D Graphics trail 了解更多详细信息

于 2013-10-09T19:56:44.433 回答
0

如果你想创建一个包含它的矩形的图像,首先创建图像,使用它的图形在它上面绘制。我正在为您编写代码片段:

BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
Graphics g = image.getGraphics();
g.setColor(Color.blue);
g.fillRect(0, 0, image.getWidth(), image.getHeight());

这将产生一个带有蓝色矩形的图像。

于 2013-10-09T19:57:05.273 回答