Zac*_*h L 26
虽然我不确定如何在运行时更改它,但您可以使用-Xdock:icon选项在命令行设置Dock图标,例如:
>java -Xdock:icon=/path/myIcon.png myApp
Run Code Online (Sandbox Code Playgroud)
本文有很多有关将Java应用程序引入Mac的有用信息,您可能会对此处列出的Mac实用程序和工具以及此处列出的部署选项感兴趣(如果您想要,最后一个链接特别有用)在Java Webstart路线上).
小智 17
Apple eAWT提供了Application类,允许更改应用程序的停靠图标.
import com.apple.eawt.Application;
...
Application application = Application.getApplication();
Image image = Toolkit.getDefaultToolkit().getImage("icon.png");
application.setDockIconImage(image);
Run Code Online (Sandbox Code Playgroud)
flo*_*all 11
在 JDK 9 中,将无法再访问内部 API,例如 Mac OS X com.apple.eawt 包中的 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);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码可以按原样使用。只需更改图像的路径。
这种为 mac os Dock 设置图标的新实现方式(在 JDK 9+ 中)比以前更好,因为您在构建应用程序时不会遇到任何问题。在 Windows 计算机上使用此代码也没有问题。不推荐使用反射,因为也不需要 Java 9。
小智 9
如果您使用Eclipse,则可以将项目导出为Mac OS X Application Bundle并指定.icns文件以用作图标.
在Eclipse中,转到File> Export并在'Other'目录中选择'Mac OS X Application Bundle'选项.
单击下一步按钮.
然后,您将看到"应用程序包导出菜单".
此菜单上的最后一个选项是"图标".您可以在此处指定.icns文件以用作停靠图标.
就创建.icns文件而言,您可以使用Apple的Icon Composer从图像文件创建.icns文件.这是一个制作mac图标的好教程.
对于Microsoft Windows
setIconImage(new ImageIcon("Football.png").getImage());
Run Code Online (Sandbox Code Playgroud)
对于Mac OS X.
import com.apple.eawt.Application;
Application.getApplication().setDockIconImage(new ImageIcon("Football.png").getImage());
Run Code Online (Sandbox Code Playgroud)