0

何らかの理由で、次のコードは画像を正しくインポートして表示していません。描画部分をコメントアウトすると機能します。理由がわかりません。

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

public class BoardBuild extends JPanel{
    String picPath = "pictures/";
    String[] fileName = {"board.png"};
    ClassLoader cl = BoardBuild.class.getClassLoader();
    URL imgURL[] = new URL[1];
    Toolkit tk = Toolkit.getDefaultToolkit();
    Image imgBG;
    public BoardBuild() throws Exception {
        for (int x = 0; x < 1; x++)
            imgURL[x] = cl.getResource(picPath + fileName[x]);
        imgBG = tk.createImage(imgURL[0]);
    }
    public void paintComponent(Graphics g) {
        g.drawImage(imgBG, 0, 0, 150,150 , 0, 0,73, 73, this);
    }
}

Eclipseなので、写真はフォルダにありますworkspace\BoardMaskTest\src\pictures。助けていただければ幸いです。

4

3 に答える 3

1

「src」を含めないでくださいpicPath

 String picPath = "/pictures/";
于 2012-12-29T23:25:35.890 に答える
1

リソースはクラス パスから取得され、jar ファイル内の 7zip または Winzip を参照します。

String picPath = "/pictures/";

さらに、画像は次のようにロードできます

    for (int x = 0; x < 1; x++)
        URL url = getClass(().getResource(picPath + fileName[x]);
        imgBG = ImageIO.read(url);
        InputStream in = getClass(().getResourceAsStream(picPath + fileName[x]);
        imgBG = ImageIO.read(in);
于 2012-12-29T23:28:33.200 に答える
0

ここに入れます:

workspace/BoardMaskTest/pictures/

それに応じてパスを変更します。

于 2012-12-29T23:23:52.173 に答える