7

Javaでボードゲームを作っています。ゲーム ボード自体については、JFrame を満たす JPanel 全体の背景としてボードの画像を配置しようとしました。これを行う方法を見つけましたが、ファイルがローカルに保存されている場合に限り、GUI が含まれているパッケージからもイメージを取得できる必要があります。

package Gui;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JPanel;

//Proof of concept for setting an image as background of JPanel

public class JBackgroundPanel extends JPanel {
    private BufferedImage img;

    public JBackgroundPanel() {
        // load the background image
        try {
            img = ImageIO.read(new File(
                    "C:\\Users\\Matthew\\Desktop\\5x5     Grid.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        // paint the background image and scale it to fill the entire space
        g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
    }
}

ImageIcon を使用することは良い修正であると読みましたが、適切に使用する方法がわかりません。

編集 1 - ここで答えを見つけました http://www.coderanch.com/how-to/java/BackgroundImageOnJPanel また、ワークスペースで画像のフォーマットが間違っていました。助けてくれてありがとう

4

1 に答える 1

6
  1. ロードするリソースが Jar ファイル内にあることを確認してください
  2. リソースへの参照getClass().getResource("/path/to/resource")を取得するために使用します。これは、リソースを読み取るために使用できます。URLImageIO

たとえば、画像が Jar 内の /images フォルダーにある場合は、次のように使用できます。

 ImageIO.read(getClass().getResource("/images/5x5    Grid.jpg"));

例えば...

于 2013-03-29T21:46:40.567 に答える