我正在尝试设置 Jar 文件的图标图像:
setIconImage(new ImageIcon(getClass().getResource("logo.png")).getImage());
在 Mac OS X 10.7.4 中运行时,出现以下错误:
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextGetCTM: invalid context 0x0
Jun 28 15:21:40 (my dhcp) java[73383] <Error>: CGContextSetBaseCTM: invalid context 0x0
setIconImage http://docs.oracle.com/javase/1.5.0/docs/api/javax/swing/JFrame.html#setIconImage%28java.awt.Image%29不设置 jar 图标。它将设置最小化窗口的图标JFrame
会看起来像。 jar 图标(控制 finder 图标和扩展坞应用程序图标)无法在 jar 文件本身中设置。您只需获得操作系统提供的默认图标即可。你需要使用类似的东西来包裹它打包器 https://developer.apple.com/library/mac/#documentation/Java/Conceptual/Jar_Bundler/About/About.html适用于 OS X 或 Launch4J 适用于 Windows。
您可以在应用程序运行时设置应用程序停靠栏图标,请参阅com.apple.eawt.Application.setDockIconImage https://developer.apple.com/library/mac/documentation/Java/Reference/JavaSE6_AppleExtensionsRef/api/com/apple/eawt/Application.html#setDockIconImage%28java.awt.Image%29。但它并不完美,因为当您双击 jar 时,它会使用通用 java 图标在扩展坞中启动,并且仅在 java 代码开始运行时跳动一两次后才切换到您的自定义图标。另外,我不认为它会为未运行的 jar 设置停靠图标(并不是说您可以将 jar 文件拖到停靠中 - 似乎对我不起作用)。
下面是一些代码,演示了您可以设置的不同图像:
import com.apple.eawt.Application;
import javax.swing.*;
class SetIcon extends JFrame {
SetIcon() {
setIconImage(new ImageIcon("doc.png").getImage());
Application.getApplication().setDockIconImage(
new ImageIcon("app.png").getImage());
}
public static void main(String args[]) {
SetIcon s = new SetIcon();
s.setVisible(true);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)