Come si modifica l'icona Dock di un programma Java?


Come posso cambiare l'icona Dock di un programma, in Java, sulla piattaforma Macintosh? Ho sentito parlare dell'utilizzo della libreria Java di Apple (che fornisce una sorta di supporto extra sulla piattaforma Mac), ma devo ancora trovare alcuni esempi reali.

Author: OMG Ponies, 2011-05-15

6 answers

Apple eAWT fornisce la classe Application che consente di modificare l'icona dock di un'applicazione.

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

Anche se non sono sicuro di come cambiarlo in fase di runtime, puoi impostare sulla riga di comando l'icona del Dock usando l'opzione -Xdock:icon, come:

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

Questo articolo contiene molte utili informazioni sul portare le app java su Mac, e potresti essere interessato a guardare le utilità e gli strumenti per Mac elencati qui , così come le opzioni di distribuzione elencate qui (l'ultimo link è particolarmente utile se vuoi andare lungo il percorso Java Webstart).

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

Se si utilizza Eclipse, è possibile esportare un progetto come pacchetto di applicazioni Mac OS X e specificare un .file icns da utilizzare come icona.
In Eclipse, vai su File > Esporta e scegli l'opzione' Mac OS X Application Bundle 'all'interno della directory 'Altro'.

Fare clic sul pulsante Avanti.
Poi ti verrà presentato con il 'Menu di esportazione Bundle applicazione'.
L'ultima opzione in questo menu è 'Icona'. Questo è dove si specifica il .file icns da utilizzare come icona dock.

Immagine di i 2 menu di esportazione Eclipse

Per quanto riguarda la creazione del .file icns è interessato, è possibile utilizzare Icona Compositore di Apple per creare un .file icns da un file immagine. Ecco un buon tutorial su come creare icone mac.

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

Soluzione per Java 9 e versioni successive

In JDK 9, API interne come quelle in Mac OS X com.Apple.il pacchetto eawt non sarà più accessibile.

Cfr.: 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);
    }
}

Questo codice può essere usato così com'è. Basta cambiare il percorso dell'immagine.
Questo nuovo modo implementato (in JDK 9+) di impostare l'icona per Mac os dock è meglio di prima perché non si verificherà alcun problema durante la creazione dell'applicazione. Inoltre non c'è problema per utilizzare questo codice su un computer Windows. Riflessione che non è raccomandata poiché Java 9 non è necessario.

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

Per Microsoft Windows

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

Per 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

Se hai installato XCode, puoi usare JarBundler per creare un'app Mac usando un file Jar. Se non hai XCode, puoi usare questo JarBundler:

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

Durante la creazione del bundler, è possibile scegliere un'icona nel .estensione icns. Quella sarà la tua icona Dock.

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