it-swarm.com.de

Icon Bild in Java einstellen

Ich habe überall nach dem Einstellen des Symbolbildes in Java gesucht, und es funktioniert immer nicht oder es gibt Fehler. In meiner Hauptmethode stelle ich den Code ein:

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);

}

Mein Pfad für das Bild ist "% PROJECT%/res/Image.png", und ich verwende einfach /Image.png, um auf meinen Ordner "res" zuzugreifen (wie in anderen Teilen meines Projekts). Ich habe es sogar konvertiert in eine Symboldatei und versuchte es, aber es entscheidet sich nur, das Java-Standardsymbol zu verwenden.

9
Shzylo

Ihr Problem liegt oft daran, dass Sie an einem falschen Ort nach dem Bild suchen oder wenn Ihre Klassen und Bilder in einer JAR-Datei sind und dann nach Dateien suchen, in denen keine Dateien vorhanden sind. Ich schlage vor, dass Sie Ressourcen einsetzen, um das zweite Problem zu beseitigen.

z.B.,

// 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);

Verwenden Sie dazu das Default-Toolkit

frame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
8
Jayram Singh

Ich benutze das:

import javax.imageio.ImageIO;
import Java.awt.*;
import Java.awt.image.BufferedImage;
import Java.io.IOException;
import Java.io.InputStream;

public class IconImageUtilities
{
    public static void setIconImage(Window window)
    {
        try
        {
            InputStream imageInputStream = window.getClass().getResourceAsStream("/Icon.png");
            BufferedImage bufferedImage = ImageIO.read(imageInputStream);
            window.setIconImage(bufferedImage);
        } catch (IOException exception)
        {
            exception.printStackTrace();
        }
    }
}

Platzieren Sie einfach Ihr Bild mit dem Namen Icon.png im Ressourcenordner und rufen Sie die obige Methode mit selbst als Parameter innerhalb einer Klasse auf, die eine Klasse aus der Window - Familie erweitert, wie JFrame oder JDialog :

IconImageUtilities.setIconImage(this);
1
BullyWiiPlaza