TrayIcon 類 添加系統托盤不顯示托盤圖標

很久不碰 java swing最近寫了一個swing 程序 添加托盤時,怎麼也不顯示圖標,就一空白 ,在網上搜了老半天,大部無效。 邊看帖子邊看 java api ,結合理解,有一屬性設置了一下,就出來了 代碼以下 java



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);  把這個屬性設置一下就好了。簡單易解。 api

再就是系統托盤顯示亂碼 測試

1

可是打包成 exe 就不亂碼。 這個解決方法是把整個項目設置成gbk 編碼. 而後 this

2

3

這樣亂碼也解決,打完收工。 編碼

相關文章
相關標籤/搜索