10

Javaでアイコン画像を設定する方法をどこでも検索してきましたが、常に機能しないか、エラーが発生します。ここで、私の主な方法は、コードを配置する場所です。

public static void main(String[] args) {
    Game game = new Game();

    // This right here! 
    game.frame.setIconImage(new ImageIcon("/Icon.png").getImage());

    game.frame.setResizable(false);
    game.frame.setTitle(title);
    game.frame.add(game);
    game.frame.pack();
    game.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    game.frame.setLocationRelativeTo(null);
    game.frame.setVisible(true);

}

画像のパスは「%PROJECT%/res/Image.png」で、/Image.png を使用して res フォルダーにアクセスします (プロジェクトの他の部分で行ったように)。をアイコンファイルに変換して試してみましたが、デフォルトの Java アイコンを使用することしか決定されませんでした。

4

4 に答える 4

10

問題は、多くの場合、イメージの間違った場所を探しているか、クラスとイメージが jar ファイルにある場合に、ファイルが存在しないファイルを探していることが原因です。リソースを使用して 2 番目の問題を解決することをお勧めします。

例えば、

// the path must be relative to your *class* files
String imagePath = "res/Image.png";
InputStream imgStream = Game.class.getResourceAsStream(imagePath );
BufferedImage myImg = ImageIO.read(imgStream);
// ImageIcon icon = new ImageIcon(myImg);

// use icon here
game.frame.setIconImage(myImg);
于 2013-06-29T19:29:40.877 に答える
0

以下の方法は、Java 7 以降でうまく機能します。

JFrame frame = new JFrame("MyAPP");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
    frame.setIconImage(ImageIO.read(YourClass.class.getResourceAsStream("/icon.png")));
} catch (IOException ex) {
    ex.printStackTrace();
}
frame.setVisible(true);

icon.png画像ファイルを にパークします/src/main/resources

于 2021-03-04T05:49:24.680 に答える