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(); } } }