package com.tray;

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;

public class Jframe extends JFrame {
	public final SystemTray systemtray = SystemTray.getSystemTray();  //得到当前系统托盘
	Image image = Toolkit.getDefaultToolkit().getImage("tray.png");
	PopupMenu pmenu = new PopupMenu();       //托盘图标的弹出式菜单
	MenuItem openmenu = new MenuItem("打开");  //弹出菜单的打开选项
	MenuItem closemenu = new MenuItem("关闭");  //弹出菜单的关闭选项
	TrayIcon trayicon = null;         //系统托盘图标

	public Jframe() {
		setTitle("这是一个测试系统托盘图标的窗口");
		setVisible(true);
		setBounds(400, 200, 400, 400);

		openmenu.addActionListener(new MenuListen(this));
		closemenu.addActionListener(new MenuListen(this));

		pmenu.add(openmenu);            //在弹出式菜单里面加入菜单。
		pmenu.add(closemenu);

		trayicon = new TrayIcon(image, "我的系统托盘图标", pmenu); // 创建一个带图片,提示名,弹出菜单的托盘图标
		trayicon.setImageAutoSize(true); // 设置系统图标大小自动。
		trayicon.addMouseListener(new MouseAdapter() { // 设置双击系统托盘图标显示主窗口
			@Override
			public void mouseClicked(MouseEvent e) {
				if (e.getClickCount() == 2) {
					setVisible(true);
				}

			}
		});

		try {
			systemtray.add(trayicon); // 将图标添加到系统托盘
		} catch (AWTException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}

		this.addWindowListener(new WindowListener() {   //添加窗口关闭事件

			@Override
			public void windowOpened(WindowEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void windowIconified(WindowEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void windowDeiconified(WindowEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void windowDeactivated(WindowEvent e) {
				// TODO Auto-generated method stub

			}

			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				setVisible(false);
			}

			@Override
			public void windowClosed(WindowEvent e) {
				// TODO Auto-generated method stub
			}

			@Override
			public void windowActivated(WindowEvent e) {
				// TODO Auto-generated method stub

			}
		});
	}

	class MenuListen implements ActionListener { // 弹出菜单的监听事件
		public Jframe jf = null;

		public MenuListen(Jframe jf) {
			this.jf = jf;
		}

		public void actionPerformed(ActionEvent e) {
			if (e.getActionCommand().equals("关闭")) {
				System.exit(0);
			} else
				jf.setVisible(true);
		}

	}

	public static void main(String[] args) {    //测试的主函数  
		Jframe jf = new Jframe();
	}

}
最近下载更多
a511172777  LV1 2022年3月10日
gdsccpa  LV1 2021年9月27日
baoxing567  LV9 2021年5月25日
steve_szk  LV1 2020年12月21日
wei112233  LV15 2020年4月20日
huzh035  LV3 2020年3月19日
我去饿  LV1 2019年10月15日
yongzheng132  LV17 2019年6月25日
annazhang  LV29 2019年5月25日
BB86818BB  LV1 2019年2月22日
最近浏览更多
pangzhihui  LV14 2023年11月13日
liys1234  LV9 2022年4月25日
today424  LV2 2022年3月29日
a511172777  LV1 2022年3月10日
微信网友_5852742079762432  LV6 2022年2月28日
214419233 2022年1月16日
暂无贡献等级
lanyuan  LV6 2021年12月20日
lyfqxx  LV1 2021年10月14日
gdsccpa  LV1 2021年9月27日
HQY 2021年6月30日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友