swing 最小化成托盘

package com.record.swing.tool;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class SystemTrayTest extends JFrame {
    private TrayIcon trayIcon;//托盘图标
    private SystemTray systemTray;//系统托盘
    public SystemTrayTest() {
        //super("系统托盘图标");
        systemTray = SystemTray.getSystemTray();//获得系统托盘的实例
        setSize(150, 150);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
        try {
            // 定义托盘图标的图片
            String filePath = "com/record/swing/tool/policeimg.png";
            String path = ClassLoader.getSystemResource(filePath).getFile();
            Image image = Toolkit.getDefaultToolkit().getImage(path);
            trayIcon = new TrayIcon(image);
            systemTray.add(trayIcon);//设置托盘的图标,0.gif与该类文件同一目录
            this.dispose();
        } catch (AWTException e2) {
            e2.printStackTrace();
        }
        this.addWindowListener(
                new WindowAdapter() {
                    public void windowIconified(WindowEvent e) {
                        dispose();//窗口最小化时dispose该窗口
                    }
                });
        trayIcon.addMouseListener(
                new MouseAdapter() {
                    public void mouseClicked(MouseEvent e) {
                        if (e.getClickCount() == 2)//双击托盘窗口再现
                        {
                            setExtendedState(Frame.NORMAL);
                        }
                        setVisible(true);
                    }
                });
    }
    public static void main(String args[]) {
        new SystemTrayTest();
    }
}

你可能感兴趣的:(swing)