1

ボード ゲームに使用する事前に作成された画像で構成される 8x8 グリッドを作成しようとしていますが、画像の読み込みに問題があります。

    Dimension Size = new Dimension(400, 400);

    layeredPane = new JLayeredPane();
    layeredPane.setPreferredSize(Size);
    getContentPane().add(layeredPane);

    board.setLayout(new GridLayout(8,8));
    board.setPreferredSize(Size);
    board.setBounds(0, 0, Size.width, Size.height);
    layeredPane.add(board, JLayeredPane.DEFAULT_LAYER);

    //  Load squares to board

    for (int i = 0; i < 8; i++)
    {
        for (int j = 0; j < 8; j++)
        {
            JPanel square = new JPanel( new BorderLayout() );
            square. // Load .jpg here?????
            board.add( square );
        }
    }

私が知っている唯一の方法はImageIconですが、それはうまくいかないようです...だから私は立ち往生しています。

助けていただければ幸いです、ありがとう。

4

2 に答える 2

3

ImageIcon は正常に動作するはずです。詳細と例については、アイコンの使用方法に関する Swing チュートリアルを参照してください。

于 2013-03-20T00:48:28.513 に答える
0

java2s.comから改作された次のコード スニペットを試してください。

class ImagePanel extends JPanel {
private Image img;

public ImagePanel(URL imgURL) {
    this(new ImageIcon(imgURL).getImage());
}

public ImagePanel(Image img) {
    this.img = img;
    Dimension size = new Dimension(img.getWidth(this), img.getHeight(this));
    setPreferredSize(size);
    setMinimumSize(size);
    setMaximumSize(size);
    setSize(size);
    setLayout(null);
}

@Override
public void paintComponent(Graphics g) {
    super.paint(g);
    g.drawImage(img, 0, 0, this);
}
}

これらの ImagePanels を JPanel 内に追加できます

于 2013-03-20T00:48:28.563 に答える