1

プログラムにイメージをロードしたいのですが、実行可能な jar でもロードできます。
したがってnew ImageIcon(URL);、 toは実際にJLabelは機能しません。

私のすべてのJavaファイルは、coreパッケージ内のsrcフォルダーにあります。写真を src フォルダーに入れたいのですが、imagesパッケージ内にあります。

それは可能ですか、それともプロジェクト内の特定の場所に画像を配置する必要がありますか?

そして、実行可能なjar内で動作するようにプログラムに画像をロードする方法は何ですか?

4

1 に答える 1

2

通常、Java Jar ファイル内に画像を埋め込む方法は、srcすべての画像ファイルとResource. クラス コードは次のようになります。

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;

public class Resource{
    public static BufferedImage loadImage(String imageFileName){
        URL url = Resource.class.getResource(imageFileName);
        if(url == null) return null;

        try {
            return ImageIO.read(url);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }

    public static ImageIcon loadIcon(String imageFileName){
        BufferedImage i = loadImage(imageFileName);
        if(i == null) return null;
        return new ImageIcon(i);
    }
}

クラスResourceとすべての画像ファイルが同じパッケージにある場合、 を呼び出しJLabelて返された を使用して新しい を作成するだけです。これは、IDE で実行しているか、Jar ファイルから実行しているかに関係なく機能します。ImageIconloadIcon([simple filename])

于 2012-09-05T21:55:51.787 に答える