Frage

Ich bin mit NetBeans und versuchen, die vertraute Java Kaffeetasse Symbol auf eine PNG-Datei zu ändern, die ich in einem Ressourcen-Verzeichnis in der JAR-Datei gespeichert haben. Ich habe viele verschiedene Web-Seiten gefunden, dass sie eine Lösung haben Anspruch, aber bisher keiner von ihnen arbeiten.

Hier ist, was ich im Moment haben (Verlassen des try-catch-Block out):

URL url = new URL("com/xyz/resources/camera.png");
Toolkit kit = Toolkit.getDefaultToolkit();
Image img = kit.createImage(url);
getFrame().setIconImage(img);

Die Klasse, die diesen Code enthält, ist in dem com.xyz Paket, wenn das einen Unterschied macht. Diese Klasse erstreckt sich auch JFrame. Dieser Code wird eine MalformedURLException in der ersten Zeile zu werfen.

Wer eine Lösung, die funktioniert?

War es hilfreich?

Lösung

java.net.URL url = ClassLoader.getSystemResource("com/xyz/resources/camera.png");

oder auch nicht ein ‚/‘ an der Vorderseite des Weges erforderlich ist.

Andere Tipps

Sie können einfach gehen Netbeans, in der Entwurfsansicht, geht Eigenschaft auf JFrame, Symbolbild Eigenschaft wählen, wählt Set Formular iconImage Eigenschaft mit: „Custom Code“ und dann in der Form.SetIconImage() Funktion den folgenden Code:

Toolkit.getDefaultToolkit().getImage(name_of_your_JFrame.class.getResource("image.png"))

Vergessen Sie nicht zu importieren:

import java.awt.Toolkit;

im Quelltext!

oder legen Sie das Bild in einer Position relativ zu einer Klasse, und Sie müssen nicht alle die Paket / Pfadinformationen in der Zeichenfolge selbst.

com.xyz.SomeClassInThisPackage.class.getResource( "resources/camera.png" );

Auf diese Weise, wenn Sie die Klasse zu einem anderen Paket zu verschieben, müssen Sie nicht alle Fäden finden müssen, bewegen Sie nur die Klasse und ihre Ressourcen-Verzeichnis.

Versuchen Sie nach dieser Zuschreibung

initcomponents();

setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Your image address")));
    /** Creates new form Java Program1*/
    public Java Program1() 


    Image im = null;
    try {
    im = ImageIO.read(getClass().getResource("/image location"));
    } catch (IOException ex) {
    Logger.getLogger(chat.class.getName()).log(Level.SEVERE, null, ex);
    }
    setIconImage(im);

Dies ist, was ich in der GUI in Netbeans verwendet und es funktionierte perfekt

In einer Klasse, die eine javax.swing.JFrame Verwendung Methode setIconImage erstreckt.

this.setIconImage(new ImageIcon(getClass().getResource("/resource/icon.png")).getImage());

Sie sollten Symbole der verschiedenen Größe definieren, Windows- und Linux-Distributionen wie Ubuntu verschiedene Symbole verwenden in der Taskleiste und Alt-Tab.

public static final URL ICON16 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug16.png");
public static final URL ICON32 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug32.png");
public static final URL ICON96 = HelperUi.class.getResource("/com/jsql/view/swing/resources/images/software/bug96.png");

List<Image> images = new ArrayList<>();
try {
    images.add(ImageIO.read(HelperUi.ICON96));
    images.add(ImageIO.read(HelperUi.ICON32));
    images.add(ImageIO.read(HelperUi.ICON16));
} catch (IOException e) {
    LOGGER.error(e, e);
}

// Define a small and large app icon
this.setIconImages(images);

Beispiel:

URL imageURL = this.getClass().getClassLoader().getResource("Gui/icon/report-go-icon.png");
ImageIcon iChing = new ImageIcon("C:\\Users\\RrezartP\\Documents\\NetBeansProjects\\Inventari\\src\\Gui\\icon\\report-go-icon.png");      
btnReport.setIcon(iChing); 
System.out.println(imageURL);

innerhalb des Rahmens Konstruktor

try{    
       setIconImage(ImageIO.read(new File("./images/icon.png")));   
   }
catch (Exception ex){
       //do something
   }

Sie können versuchen, dieses , es funktioniert gut:

`   ImageIcon icon = new ImageIcon(".//Ressources//User_50.png");
    this.setIconImage(icon.getImage());`
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top