当 JFrame 像其他 mac 应用程序一样最小化到 Dock 时,为它设置一个图标。请帮忙..
4 回答
Mikle所指的一个例子:
现在移至:Swing 中使用的框架图标的大小。
使用 Mac 操作系统提供的 jar bundler 创建应用程序。使用 jar bundler 设置应用程序的图标,不要为您的 jframe 设置任何图标。
Window 类具有setIconImages
需要java.util.List<? extends Image>
作为参数的方法。您将必须传递具有不同大小的图像列表,以便操作系统可以从该列表中为每种特定情况选择一个 - 它是最小化图标、停靠/工具栏图标、窗口图标还是任何其他系统特定 UI 的图标元素。
我通常会为自己的应用程序传递很多不同尺寸的图像:16x16、24x24、32x32、48x48、64x64、128x128、256x256、512x512
大的通常由大型工具栏或文件夹视图使用,以显示与您的应用程序关联的文件的图标。通常也使用 16x16 图标作为窗口(框架/对话框)图标。其他图标可以在很多不同的情况下使用,这取决于您拥有的操作系统(Windows、Mac OS 等)。
你真的在说两件事。
应用程序在 Dock、Finder 等中的图标。
如前所述,appbundle 甚至简单地手动创建捆绑包是解决此问题的方法。
应用程序最小化到 Dock 时的图标
当您最小化应用程序时,它会成为一个单独的停靠条目,不一定看起来像应用程序之一。
Window 有
setIconImages
- 如果你设置了这个方法,应用程序在最小化时会变成那个图标,看起来不是原生的。因此,您应该在调用该方法之前检查您是否在 OSX 上运行并避免调用它。通过省略调用,您将获得默认行为,其中最小化图标将是窗口本身外观的微型副本,这是我们看到其他应用程序所做的事情。如果 JRE 能够为我们解决这个问题,并且在 Mac OS X 上运行时忽略这些图标,那就太好了。