1. 程式人生 > >ava SystemTray類(系統托盤)和TrayIcon類(托盤圖示)

ava SystemTray類(系統托盤)和TrayIcon類(托盤圖示)

利用SystemTray類可以訪問系統托盤,每個Java應用程式在執行時都會被分配一個該類的例項,可以通過該類的靜態方法getSystemTray()獲得。某些系統可能不支援系統托盤功能,此時可以通過靜態方法isSupported()判斷當前系統是否支援該功能,如果支援則返回true,否則返回false。

通過方法add(TrayIcon trayIcon)可以為當前應用程式新增托盤圖示到系統托盤;可以為一個應用程式新增多個托盤圖示;當不再需要托盤圖示時,可以通過方法remove(TrayIcon trayIcon)移除指定的托盤圖示。

每一個Java應用都會包含一個SystemTray例項,這個不需要你去例項化。

SystemTray.isSupported();// 判斷當前平臺是否支援系統托盤
SystemTray tray = SystemTray.getSystemTray();// 獲取到當前平臺的系統托盤

TrayIcon 類的構造方法
TrayIcon trayIcon = new TrayIcon(Image image);//建立只具有托盤圖示的物件
TrayIcon trayIcon = new TrayIcon(Image image, String tooltip,);//建立具有托盤圖示和提示資訊的物件
TrayIcon trayIcon = new TrayIcon(Image image, String tooltip, PopupMenu popup);//建立具有托盤圖示、提示資訊、彈出選單的物件(注意:是 PopupMenu 類 彈出選單,不是 JPopupMenu 類 )

TrayIcon 類的常用方法
setImageAutoSize(true);// 設定自動調整圖示大小以適應當前平臺的托盤圖示顯示

setImage(Image image);// 根據需要可在隨時改變顯示的圖示

setPopupMenu(PopupMenu popup);// 根據需要可隨時改變點選時的彈出選單

addActionListener(ActionListener listener);// 新增托盤圖示的動作監聽器(滑鼠右鍵的點選監聽)

addMouseListener(MouseListener listener);// 新增托盤圖示的滑鼠監聽器(包括滑鼠所有按鍵的監聽)

add(trayIcon);// 新增托盤圖示到系統托盤(一個應用程式可新增多個托盤圖示)

remove(trayIcon);// 從系統托盤移除圖示

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
 
import java.net.*;
import javax.swing.*;
 
public class t3 extends JFrame{
    
    public t3() {
        setTitle("選項卡面板");
        setBounds(400, 400, 400, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        final JLabel label = new JLabel();
        label.setForeground(Color.black);//設定標籤前景色
        label.setFont(new Font("微軟雅黑", Font.BOLD, 16));//設定標籤字型,大小,加粗
        label.setHorizontalAlignment(SwingConstants.CENTER);//設定標籤內容居中對齊
        label.setText("請檢視系統托盤中的變化!");
        
        add(label);
        
        setVisible(true);
    }
    
    public void Tray() throws AWTException{
        
        if(SystemTray.isSupported()) {//判斷系統是否支援托盤圖示
            
            URL resource = this.getClass().getResource("/black.jpg");//獲取托盤圖示
            ImageIcon icon = new ImageIcon(resource);
            PopupMenu pop = new PopupMenu();//建立彈出式選單
            
            MenuItem menu = new MenuItem("退出");//建立選單項
            menu.addActionListener(new ActionListener() {//給選單項新增事件監聽器,單擊時退出系統
                
                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                    System.exit(0);
                    
                }
            });
            pop.add(menu);
            TrayIcon tray = new TrayIcon(icon.getImage(), "Hern",pop);
            
            // 獲得系統托盤物件
            SystemTray systemTray = SystemTray.getSystemTray();
            systemTray.add(tray);// 將托盤圖片新增到系統托盤中
        }
        
    }
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        t3 test = new t3();
        
        try {
            
            test.Tray();
            
        }catch(AWTException e) {
            e.printStackTrace();
        }
 
    }
 
}