JFrame Icon ändern

  • Themenstarter Themenstarter Ghosti
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Ghosti

Gast
Hallo,

hab ein kleines Problem. Ich will das Icon des Frames ändern und verwende folgenden Code dafür.

Codebeispiel ist direkt von Sun. Lösung für den Icon Bug des Frames!

Code:
package icon;


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


public class ImageIcons extends JFrame
{
  public ImageIcons(boolean showBefore)
  {
    super("TestIcon");
    super.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

    //Image icon = Toolkit.getDefaultToolkit().getImage( "./CD.png" );
    Image icon = new ImageIcon( "CD.png" ).getImage();

    if( showBefore )
    {
      System.out.println("JFrame.setIconImage() ..... FAILED");
      super.show(); //super.setVisible(true)
      super.setIconImage( icon );
    }
    else
    {
      System.out.println("JFrame.setIconImage() ..... WORKS");
      super.setIconImage( icon );
      super.show();
    }
  }
  
  
  public static void main(String[] args)
  {
    //If no commandline option is used. The error will be duplicated.
    //Otherwise, the working option is invoked.
    boolean bln = false;

    ImageIcons f = new ImageIcons(bln);

    // Iconifying frame to show the ICON. This is done since the
    // ICON will not be display in NORMAL state.
    f.setState( JFrame.NORMAL );
  }
  
}

Bei Sun in der BugList steht das zuerst das Icon gesetzt werden muss bevor der Frame visible gesetzt wird. Leider wird aber bei mir kein Icon angezeigt. Das Bild befindet sich auch im gleichen Verzeichnis.

Weis einer zufällig warum es nicht angezeigt wird??
 
hab einen kleinen Fehler im code entdeckt. Die letzte CodeZeile müsste

f.setState(JFrame.ICONIFIED);

heißen.

Das Icon wird aber dennoch nicht angezeigt.
 
so mach ich das auch, jedoch sieht man das neue Icon nicht. Man sieht garnichts!
Bild befindet sich im gleichen Verzeichnis wie das Class-File


Code:
//Image icon = Toolkit.getDefaultToolkit().getImage("bild.png");
Image icon = new ImageIcon("bild.png").getImage();

setSize(800,600);
setIconImage(icon);
setVisible(true);

Hab es bei Sun nachgelesen, das steht auch deutlich das man zuerst das Icon setzen soll und danach erst das Fenster sichtbar machen.

Jedoch seh ich bei mir das neue Icon nicht. Das Standard-Icon sieht man auch nicht mehr!

Am L&F kann das aber nicht liegen oder??
 
Hab es jetzt gelöst, war ein Fehler von mir.

Ich dachte das Bild müsste in dem gleichen Ordner sein wie meine ganzen Gui Klassen.

Hab das Bild jetzt in den Package-Ornder gelegt und siehe da es funktioniert.

Danke euch!!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben