这是处理JAR App中所有图像和图标的最佳方法。
将所有图像和图标压缩到其自己的JAR文件中之后-通过将图像JAR文件添加到“库”选项卡中来配置构建路径,以使其现在包含在类路径中。
然后,只需在构造函数的开头使用以下3x代码行即可访问所需的任何图像,包括不接受简单ImageIcon作为其主要图标的SystemTray图像(我知道这很奇怪)。3x行是:
URL iconUrl = this.getClass().getResource("/image-iconb.png");
Toolkit tk = this.getToolkit();
someimgicon = tk.getImage(iconUrl);
(someimgicon只是一个声明了Image变量的构造函数) 现在,您可以将窗口图标设置为:
setIconImage(someimgicon);
并通过声明以下内容在设置系统TrayIcon时使用相同的变量:
trayIcon = new TrayIcon(someimgicon, "SystemTray Demo", popupMenu);
上面的代码使您可以轻松,集中地声明Image或ImageIcons,而不会冒未将图像资源放置在正确位置的风险。JAR包含您在运行时自动编译的所有图像以及程序的分发,从而使其保持整洁。
另外,一旦在类路径中注册了JAR,您就可以随时将任何其他图像添加到同一JAR中,而不必大惊小怪-一切正常,添加的图像可立即用于您的应用程序。