Java 實作視窗最小化至系統托盤範例。本站提醒廣大學習愛好者:此文章僅供參考,不一定能完全符合您的需求。以下是完整範例正文
系統托盤即桌面右下角的圖示區域。此程式實作的功能是:點擊視窗關閉按鈕不結束程式,而是將視窗隱藏至系統托盤。本質上只是將視窗設為不可見。
import java.awt.AWTException;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public class TestTray extends JFrame {
private static final long serialVersionUID = -7078030311369039390L;
public TestTray() {
this.setSize(500, 400);
this.setLocationRelativeTo(null); // 視窗置中
systemTray(); // 設定系統托盤
// 添加關閉按鈕事件,關閉時實為隱藏視窗
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
TestTray.this.setVisible(false);
}
});
this.setVisible(true);
}
/** 處理系統托盤 */
private void systemTray() {
if (SystemTray.isSupported()) {
// 建立托盤右鍵彈出選單
PopupMenu popupMenu = new PopupMenu();
// 建立選單項目:退出系統
MenuItem itemExit = new MenuItem("退出系統");
itemExit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popupMenu.add(itemExit);
// 建立托盤圖示
ImageIcon icon = new ImageIcon("img/icon.png");
TrayIcon trayIcon = new TrayIcon(icon.getImage(), "測試系統托盤", popupMenu);
trayIcon.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TestTray.this.setVisible(true);
}
});
// 將托盤圖示加入系統托盤
try {
SystemTray.getSystemTray().add(trayIcon);
} catch (AWTException e1) {
e1.printStackTrace();
}
}
}
public static void main(String[] args) {
new TestTray();
}
}