Macintoshプラットフォームで、JavaのプログラムのDockアイコンを変更するにはどうすればよいですか? AppleのJavaライブラリ(Macプラットフォームで何らかの追加サポートを提供する)の使用について聞いたことがありますが、実際の例はまだいくつか見つかりません。
Apple eAWTは、アプリケーションのドックアイコンを変更できる Application クラスを提供します。
import com.Apple.eawt.Application;
...
Application application = Application.getApplication();
Image image = Toolkit.getDefaultToolkit().getImage("icon.png");
application.setDockIconImage(image);
Eclipseを使用している場合は、プロジェクトをMac OS Xアプリケーションバンドルとしてエクスポートし、アイコンとして使用する.icnsファイルを指定できます。
Eclipseで、[ファイル]> [エクスポート]に移動し、[その他]ディレクトリ内の[Mac OSXアプリケーションバンドル]オプションを選択します。
次のボタンをクリックします。
次に、「アプリケーションバンドルエクスポートメニュー」が表示されます。
このメニューの最後のオプションは「アイコン」です。ここで、ドックアイコンとして使用する.icnsファイルを指定します。
.icnsファイルの作成に関する限り、AppleのアイコンComposerを使用して、画像ファイルから.icnsファイルを作成できます。 Macアイコンの作成に関する優れたチュートリアルです。 。
MicrosoftWindowsの場合
setIconImage(new ImageIcon("Football.png").getImage());
Mac OSXの場合
import com.Apple.eawt.Application;
Application.getApplication().setDockIconImage(new ImageIcon("Football.png").getImage());
JDK 9では、Mac OS Xのcom.Apple.eawtパッケージのAPIなどの内部APIにアクセスできなくなります。
参照: 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);
}
}
このコードはそのまま使用できます。画像のパスを変更するだけです。
mac os dockのアイコンを設定するこの新しい実装方法(JDK 9以降)は、アプリケーションのビルド時に問題が発生しないため、以前よりも優れています。また、このコードをWindowsコンピューターで使用しても問題はありません。 Java 9も必要ないため、推奨されないリフレクション。
XCodeがインストールされている場合は、JarBundlerを使用してJarファイルを使用してMacアプリを作成できます。 XCodeをお持ちでない場合は、次のJarBundlerを使用できます。
http://sourceforge.net/projects/jarbundler/
バンドラーの作成中に、.icns拡張子のアイコンを選択できます。それがあなたのドックアイコンになります。