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 グラフィックストレイルをご覧ください。

于 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 に答える
0

Graphics.drawRect() と Graphics.fillRect() を使用する必要があります。

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#drawRect%28int,%20int,%20int,%20int%29

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#fillRect%28int,%20int,%20int,%20int%29

于 2013-10-09T19:50:19.920 に答える