如何为SWT Java应用程序设置高质量的OSX停靠图标

mch*_*chr 3 java macos swt

我编写了一个SWT Java应用程序,并希望将其配置为在OSX dock中使用高质量图标.这是我目前的代码:

// Prepare window
final Shell window = new Shell();

// Load icons
Display display = window.getDisplay();
ClassLoader loader = InTraceStandaloneUI.class.getClassLoader();
InputStream is16 = loader.getResourceAsStream(
                 "org/intrace/icons/intrace16.gif");
Image icon16 = new Image(display, is16);
is16.close();
InputStream is32 = loader.getResourceAsStream(
                 "org/intrace/icons/intrace32.gif");
Image icon32 = new Image(display, is32);
is32.close();
window.setImages(new Image[] {icon16, icon32});
Run Code Online (Sandbox Code Playgroud)

https://github.com/mchr3k/org.intrace/blob/master/org.intrace/src/org/intrace/client/gui/InTraceStandaloneUI.java

这适用于加载16x16和32x32徽标,这些徽标在Windows上看起来不错,但OSX使用的徽标看起来仍然非常像素化.我只需要指定具有更高分辨率的第三个版本,还是应该使用不同的图像格式或API?

mch*_*chr 5

实际上,如果你调用Shell.setImages(...)并包含一个128x128图标,那么这将由OSX选择,你可以获得一个高质量的停靠图标,而无需使用Apple扩展类.