java ico 系统托盘 图标_TrayIcon 类 添加系统托盘不显示托盘图标

好久不碰 java swing最近写了一个swing 程序 添加托盘时,怎么也不显示图标,就一空白 ,在网上搜了老半天,大部无效。 边看帖子边看 java api ,结合理解,有一属性设置了一下,就出来了 代码如下

if (java.awt.SystemTray.isSupported()) {// 判断当前平台是否支持系统托盘

java.awt.SystemTray st = java.awt.SystemTray.getSystemTray();

java.awt.TrayIcon ti = new java.awt.TrayIcon(image);

ti.setImageAutoSize(true);

// ti.setToolTip("改变窗体测试");

PopupMenu p = new PopupMenu("OK");

MenuItem m = new MenuItem("退出");

m.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if(autoLoginManager != null){

autoLoginManager.exitAllAccount();

}

System.exit(0);

}

});

p.add(m);

MenuItem m1 = new MenuItem("显示");

m1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

MainFrame.this.setVisible(true);

MainFrame.this.setExtendedState(JFrame.NORMAL);

}

});

p.add(m1);

MenuItem m2 = new MenuItem("最小化");

m2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

MainFrame.this.setVisible(false);

}

});

p.add(m2);

ti.setPopupMenu(p); // 为托盘添加右键菜单

st.add(ti);

ti.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent e){

if(e.getClickCount() == 2){

//JOptionPane.showMessageDialog(null, "doubleClicked!");

MainFrame.this.setVisible(true);

MainFrame.this.setExtendedState(JFrame.NORMAL);

}

}

});

}

ti.setImageAutoSize(true);  把这个属性设置一下就行了。简单易解。

再就是系统托盘显示乱码

409e3cf9ffabd1c9dde9c85a38fb6338.png

但是打包成 exe 就不乱码。 这个解决方法是把整个项目设置成gbk 编码. 然后

35d1d22646c79356d550aab3590f5234.png

9f52f88fcba1f26104b9826eba8dd01c.png

这样乱码也解决,打完收工。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值