64 votes

Comment puis-je changer la valeur par défaut icône de l'application en Java?

Je suis à l'aide de NetBeans, en essayant de changer le familier Java coffee cup icône pour un fichier png que j'ai enregistré dans un répertoire de ressources dans le fichier jar. J'ai trouvé beaucoup de différents sites web qui prétendent avoir la solution, mais jusqu'à présent, aucune de ces travaux.

Voici ce que j'ai en ce moment (en laissant le bloc try-catch):

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

La classe qui contient ce code est dans la com.xyz paquet, si cela fait une différence. Cette classe étend également JFrame. Ce code est en train de jeter un MalformedUrlException sur la première ligne.

Quelqu'un a une solution qui fonctionne?

77voto

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

Peut ou ne peut pas exiger un " / " à l'avant de la trajectoire.

14voto

Ayoub Aneddame Points 71

Vous pouvez simplement aller Netbeans, dans la vue de conception, aller à l' JFrame de la propriété, choisissez l'image de l'icône de la propriété, Choisissez Définir la Forme de l' iconImage la propriété: "le code Personnalisé", puis dans l' Form.SetIconImage() fonction de mettre le code suivant:

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

Ne pas oublier d'importer:

import java.awt.Toolkit;

dans le code source!

4voto

John Gardner Points 10882

Ou placer l'image dans un lieu par rapport à une classe et vous n'avez pas besoin de tout ça package/information de chemin dans la chaîne elle-même.

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

De cette façon, si vous déplacez la classe d'un package différent, vous n'avez pas à trouver toutes les chaînes, il suffit de déplacer la classe et de son répertoire de ressources.

4voto

user2895893 Points 11

Essayez Cette écriture après

initcomponents();

setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Your image address")));

3voto

user1456935 Points 24
    /** 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);

C'est ce que j'ai utilisé dans l'interface graphique avec netbeans et il a parfaitement fonctionné

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X