webentwicklung-frage-antwort-db.com.de

So ändern Sie das Java-Symbol in einem JFrame

Ok, ich habe ein bisschen ein bisschen recherchiert. Ich bin relativ neu für Java, dachte aber, dass dies einfach wäre. Ich habe fast jeden Weg ausprobiert, der auf dieser Website beantwortet wurde, und es ist immer noch kein Glück, und wenn ich hier schaue, kann ich eine Antwort finden, die meinen Wünschen entspricht. Kann jemand das Java-Symbol in der oberen Ecke des JFrame ändern? Ich bin mir ziemlich sicher, dass es nicht mein Dateipfad ist, da sich alle meine Bilder im selben Ordner befinden und sie alle funktionieren. Dies ist das einzige, das ich scheinbar nicht zur Arbeit bekomme.

Dies ist der erste Teil meines Codes für das Hauptmenü meines Programms. Alles funktioniert, außer wenn ich versuche, das Symbolbild hinzuzufügen. Der Code, den ich unten eingegeben habe, enthält nichts für JFrame IconImage. Ich habe ihn entfernt, da er nicht funktioniert hat. Wenn es also jemanden gibt, der weiß, wie er mit diesem Code zum Laufen gebracht wird, der sehr geschätzt wird, vielen Dank im fortgeschrittenen Stadium!

public class MainFrame
{
private MyPanel main;
private MyPanel2 create;
private MyPanel3 update;
private MyPanel4 find;
JFrame frame = new JFrame("Main Menu:");

public void displayGUI()
{
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    contentPane.setLayout(new CardLayout());
    main = new MyPanel(contentPane, this);
    create = new MyPanel2(contentPane);
    update = new MyPanel3(contentPane);
    find = new MyPanel4(contentPane);
    contentPane.add(main, "Main Menu");
    contentPane.add(create, "Create Part");
    contentPane.add(update, "Update Part");
    contentPane.add(find, "Find Part");
    frame.setLocation(200, 200);
    frame.setSize(700, 580);
    frame.setContentPane(contentPane);

    frame.setVisible(true);

}
9
Garrett Shaw

Ich habe eine Antwort für dich. Stellen Sie zunächst sicher, dass sich die Bilder in einem Ordner und nicht in einem Paket befinden. Als nächstes fügen Sie diese Codezeile ein:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png"));
ImageIcon icon = new ImageIcon( );
setIconImage(icon.getImage());

Dieser Code ruft das Bild aus dem Klassenpfad ab und gibt es als Bildsymbol zurück und legt es dann fest. Dadurch sollte das Bildsymbol der Anwendung hinzugefügt werden. Wenn nicht, dann sag es mir.

EDIT: Nachdem Sie mir gesagt haben, dass das nicht funktioniert hat, habe ich mich entschieden, einen zweiten Riss zu machen ... Legen Sie Ihre Bilder zunächst in einem völlig separaten Ordner ab. Ich nenne das normalerweise/res. Als nächstes legen Sie Ihr Bild dort ein. Nun ging ich zum Laden einen völlig anderen Weg. Ich entschied mich für ImageIO anstelle des Standardladens. Um das Bild zu laden, verwenden Sie diesen Code:

try {
    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}

ImageIO funktioniert viel besser zum Laden von Bildern. Wenn das immer noch nicht klappt, dann sag es mir bitte.

Wenn Sie dies als JAR exportieren möchten, legen Sie einen Ordner mit demselben Namen, den Sie im Programm verwendet haben, im selben Verzeichnis wie das JAR ab.

14
user2675678

Erstellen Sie beispielsweise in einem NetBeans-Projekt einen Ressourcenordner im Ordner src.

Legen Sie Ihre Bilder (jpg, ...) dort ein.

Unabhängig davon, ob Sie ImageIO oder Toolkit (einschließlich getResource) verwenden, , Müssen Sie ein führendes/in den Pfad zur Image-Datei einfügen:

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg"));
setIconImage(image);

Wenn sich dieser Code in Ihrer JFrame-Klasse befindet, wird das Bild als Symbol in der Titelleiste zum Rahmen hinzugefügt.

2
Alain Demortier

Das funktioniert ziemlich gut für mich. Fügen Sie dies einfach hinzu, nachdem Sie Ihren JFrame erstellt haben.

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}
2
Al-amin Nowshad
  1. Fügen Sie Ihr Bildsymbol (fav.png) zuerst in das gleiche Paket ein.
  2. Schreibe folgenden Code in constructor of JFrame

setIconImage (Toolkit.getDefaultToolkit (). getImage (getClass (). getResource ("fav.png")));

Hinweis: - fav.png ist der Name von icon

1
ersks
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
          // sets the Global icon for the system

probieren Sie diesen Code nach diesem Code aus: 

public void displayGUI()
{
0
kegs Production