2

私はボードとポーンを動かすときにそれらを積極的に描く必要があるゲームに取り組んでいます。数時間検索しましたが、解決策が見つかりません。

それらはクラスと同じフォルダーにあります。

助けてくれてありがとう:)

コード:

import java.awt.*;
import javax.swing.*;

public class MyPanel extends JPanel{
    private static final long serialVersionUID = 1L;

    public void paint(Graphics g) {
        try {   
            Image board = new ImageIcon("images/ChackerBoard.jpeg").getImage();
            Image black = new ImageIcon("images\\BlackPawn.jpeg").getImage();
            Image white = new ImageIcon("images\\WhitePawn.jpeg").getImage();

            this.setSize(320, 320);

            g.drawImage(board, 0, 0, this);
            for (int i = 0; i < Game.BlackList.size(); i++) {
                g.drawImage(black, (Game.BlackList.get(i).GetX() * 40) - 36, (Game.BlackList.get(i).GetY() * 40) - 36, this);
            }
            for (int i = 0; i < Game.WhiteList.size(); i++) {
                g.drawImage(white, (Game.WhiteList.get(i).GetX() * 40) - 36, (Game.WhiteList.get(i).GetY() * 40) - 36, this);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

画像:

http://i.stack.imgur.com/bhuc2.jpg

http://imageshack.us/a/img7/8673/checkerboardo.jpg

4

1 に答える 1

0

paintComponent の @FailX、imageobserver オブジェクトが null です。画像オブザーバーを「これ」に設定すると機能します。

@Override
protected void paintComponent( Graphics g ){
    super.paintComponent( g );
    g.drawImage(img, 0, 0, this); //Image is also drawn
    g.drawLine( 10, 10, 100, 50 ); //Line is drawn
    g.draw3DRect(20,20,50,30,true); // Rectangle is drawn
}
于 2012-11-29T11:29:54.453 に答える