代碼分享:實(shí)現(xiàn)系統(tǒng)托盤效果
作者:lxw出山小草 
  這段代碼是能夠在桌面任務(wù)欄上實(shí)現(xiàn)托盤效果,初學(xué)Java的朋友可以研究。
 代碼說明:
在桌面工具欄上顯示托盤
代碼片段:
- import java.awt.AWTException;
 - import java.awt.Image;
 - import java.awt.MenuItem;
 - import java.awt.PopupMenu;
 - import java.awt.SystemTray;
 - import java.awt.Toolkit;
 - import java.awt.TrayIcon;
 - import java.awt.event.ActionEvent;
 - import java.awt.event.ActionListener;
 - import java.awt.event.MouseEvent;
 - import java.io.UnsupportedEncodingException;
 - import java.net.URL;
 - import javax.swing.ImageIcon;
 - import javax.swing.JFrame;
 - import javax.swing.JLabel;
 - public class SystemTrayDemo extends JFrame{
 - private TrayIcon trayIcon = null;
 - public SystemTrayDemo(){
 - this.setTitle("系統(tǒng)托盤");
 - jbInit();
 - this.setSize(200, 250);
 - this.setLocation(300, 300);
 - }
 - public void jbInit(){
 - if(SystemTray.isSupported()){ //檢查當(dāng)前系統(tǒng)是否支持系統(tǒng)托盤
 - SystemTray tray = SystemTray.getSystemTray();//獲取表示桌面托盤區(qū)的 SystemTray 實(shí)例。
 - Image image = Toolkit.getDefaultToolkit().getImage("newrobot1_256.png");
 - PopupMenu popupMenu = new PopupMenu();
 - MenuItem exitItem = new MenuItem("exit");
 - System.out.println(exitItem.getFont());
 - MenuItem menuItema = new MenuItem("menu a");
 - MenuItem menuItemb = new MenuItem("menu b");
 - MenuItem menuItemc = new MenuItem("menu c");
 - MenuItem menuItemd = new MenuItem("menu d");
 - exitItem.addActionListener(new ActionListener(){
 - public void actionPerformed(ActionEvent e) {
 - try{
 - System.exit(0);
 - }catch(Exception ex) {
 - ex.printStackTrace();
 - }
 - }
 - });
 - popupMenu.add(menuItema);
 - popupMenu.add(menuItemb);
 - popupMenu.add(menuItemc);
 - popupMenu.add(menuItemd);
 - popupMenu.add(exitItem);
 - trayIcon = new TrayIcon(image, "系統(tǒng)托盤{thu}", popupMenu);
 - trayIcon.addMouseListener(new java.awt.event.MouseAdapter(){
 - @Override
 - public void mouseClicked(MouseEvent e) {
 - if(e.getClickCount()==2){
 - //注意下面的API調(diào)用,這個(gè)可以給用戶提示信息
 - trayIcon.displayMessage("message", "double click",
 - TrayIcon.MessageType.INFO);
 - showIT(true);
 - }
 - }
 - });
 - //注意下面這個(gè)API調(diào)用,能夠保證使用的圖標(biāo)被縮放到合適的比例
 - trayIcon.setImageAutoSize(true);
 - try{
 - tray.add(trayIcon); // 將 TrayIcon 添加到 SystemTray。
 - } catch (AWTException e) {
 - System.err.println(e);
 - }
 - }else{
 - System.out.println("你的系統(tǒng)不支持系統(tǒng)托盤");
 - }
 - //下面這個(gè)部分是具體的業(yè)務(wù)邏輯
 - ImageIcon icon = new ImageIcon();
 - try{
 - URL url = new URL("newrobot1_256.png");
 - icon = new ImageIcon(url);
 - }catch(Exception e){
 - }
 - JLabel label = new JLabel();
 - label.setIcon(icon);
 - this.add(label);
 - }
 - public void showIT(boolean visable){
 - if(this.isVisible() != visable)
 - this.setVisible(visable);
 - }
 - public static void main(String[] args) {
 - javax.swing.SwingUtilities.invokeLater(new Runnable(){
 - public void run(){
 - new SystemTrayDemo().setVisible(true);
 - }
 - });
 - }
 - }
 
【效果圖】
原文鏈接:http://www.oschina.net/code/snippet_188162_8173
【編輯推薦】
責(zé)任編輯:林師授 
                    來源:
                    開源中國社區(qū)
 















 
 
 












 
 
 
 