加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在OS X上的Java swing中设置默认应用程序图标图像

发布时间:2020-12-14 17:46:27 所属栏目:Java 来源:网络整理
导读:我正在设置一个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 0x0Jun
我正在设置一个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没有设置jar图标.它将设置该JFrame的最小化窗口的图标. jar文件本身不能设置jar图标(它控制finder图标和Dock应用程序图标).您只需获取操作系统提供的默认图标.您将需要使用诸如用于OS X的 JarBundler或Windows的Launch4J.

您可以在应用程序运行时设置应用程序停靠图标,请参阅com.apple.eawt.Application.setDockIconImage.但是,它并不完美,因为当您双击您的jar时,它将使用通用的java图标在dock中启动,并且只切换到您的自定义反弹后的图标或两个java代码开始运行时.另外,我不认为它会设置一个没有运行的jar的dock图标(不是你可以拖动一个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);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读