Comment changer l'Icône du Dock d'un programme Java?


Comment puis-je changer l'Icône du Dock d'un programme en Java, sur la plate-forme Macintosh? J'ai entendu parler de l'utilisation de la bibliothèque Java d'Apple (qui fournit une sorte de support supplémentaire sur la plate-forme Mac), mais je n'ai pas encore trouvé d'exemples réels.

Author: OMG Ponies, 2011-05-15

6 answers

Apple eAWT fournit la classe Application qui permet de changer l'icône du dock d'une application.

import com.apple.eawt.Application;
...
Application application = Application.getApplication();
Image image = Toolkit.getDefaultToolkit().getImage("icon.png");
application.setDockIconImage(image);
 19
Author: Bertil Chapuis, 2012-01-02 17:27:56

Bien que je ne sache pas comment le changer au moment de l'exécution, vous pouvez définir sur la ligne de commande l'icône de votre Dock en utilisant l'option -Xdock:icon, comme:

 >java -Xdock:icon=/path/myIcon.png myApp

Cet article a beaucoup de petites informations utiles sur l'introduction d'applications java sur Mac, et vous pourriez être intéressé en regardant les utilitaires et outils pour Mac répertoriésici , ainsi que les options de déploiement répertoriéesici (le dernier lien est particulièrement utile si vous voulez descendre la route Java Webstart).

 29
Author: Zach L, 2011-05-15 03:34:57

Si vous utilisez Eclipse, vous pouvez exporter un projet en tant que bundle d'applications Mac OS X et spécifier un .fichier icns à utiliser comme icône.
Dans Eclipse, allez dans Fichier > Exporter et choisissez l'option' Mac OS X Application Bundle 'dans le répertoire' Other'.

Cliquez sur le bouton suivant.
Ensuite, vous serez présenté avec le "Menu d'exportation de bundle d'applications".
La dernière option de ce menu est "Icône". C'est l'endroit où vous spécifiez le .fichier icns à utiliser comme icône de dock.

Image de les 2 menus d'exportation Eclipse

En ce qui concerne la création de la .le fichier icns est concerné, vous pouvez utiliser le compositeur d'icônes d'Apple pour créer un .icns fichier à partir d'un fichier image. Voici un bon tutoriel sur la création d'icônes mac.

 9
Author: hcix, 2012-03-22 02:06:55

Solution pour Java 9 et versions ultérieures

Dans JDK 9, API internes telles que celles de Mac OS X com.pommier.le paquet eawt ne sera plus accessible.

Voir: http://openjdk.java.net/jeps/272

package main;

import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.Image;
import java.awt.Taskbar;
import java.awt.Toolkit;
import java.net.URL;

/**
 * author: flohall
 * date: 2019-07-07
 */
public final class Main {

    public static void main (String[] args){

        final JFrame jFrame = new JFrame();

        //loading an image from a file
        final Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
        final URL imageResource = Main.class.getClassLoader().getResource("resources/images/icon.gif");
        final Image image = defaultToolkit.getImage(imageResource);

        //this is new since JDK 9
        final Taskbar taskbar = Taskbar.getTaskbar();

        try {
            //set icon for mac os (and other systems which do support this method)
            taskbar.setIconImage(image);
        } catch (final UnsupportedOperationException e) {
            System.out.println("The os does not support: 'taskbar.setIconImage'");
        } catch (final SecurityException e) {
            System.out.println("There was a security exception for: 'taskbar.setIconImage'");
        }

        //set icon for windows os (and other systems which do support this method)
        jFrame.setIconImage(image);

        //adding something to the window so it does show up
        jFrame.getContentPane().add(new JLabel("Hello World"));

        //some default JFrame things
        jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE);
        jFrame.pack();
        jFrame.setVisible(true);
    }
}

Ce code peut être utilisé tel quel. Il suffit de changer le chemin de l'image.
Cette nouvelle façon implémentée (dans JDK 9+) de définir l'icône pour mac os dock est meilleure qu'auparavant car vous ne rencontrerez aucun problème lors de la construction de votre application. Il n'est pas problème pour utiliser ce code sur un ordinateur windows. Réflexion qui n'est pas recommandée, car Java 9 n'est pas nécessaire non plus.

 9
Author: flohall, 2019-07-07 16:50:29

Pour Microsoft Windows

setIconImage(new ImageIcon("Football.png").getImage());

Pour Mac OS X

import com.apple.eawt.Application;
Application.getApplication().setDockIconImage(new ImageIcon("Football.png").getImage());
 7
Author: Hassan Azimi, 2016-01-26 21:28:07

Si XCode est installé, vous pouvez utiliser JarBundler pour créer une application Mac à l'aide d'un fichier Jar. Si vous n'avez pas XCode, vous pouvez utiliser ce JarBundler:

Http://sourceforge.net/projects/jarbundler/

Lors de la création du bundler, vous pouvez choisir une icône dans le .extension icns. Ce sera votre icône de Dock.

 0
Author: VitorMM, 2013-03-27 16:13:36