首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 實作視窗最小化至系統托盤範例

     編輯:Java 相關知識

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();
    }
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved