java托盘_Java Swing 托盘

import java.awt.*;

import java.awt.event.*;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.TimeZone;

import java.util.TimerTask;

import javax.swing.*;

public class MyTray

{

TrayIcon trayIcon; // 托盘图标

SystemTray tray; // 本操作系统托盘的实例

public MyTray()

{

final JFrame frame=new JFrame("系统托盘");

frame.setSize(300,200);

frame.setVisible(true);

tray = SystemTray.getSystemTray(); // 获得本操作系统托盘的实例

ImageIcon icon = new ImageIcon("./images/title.png"); // 将要显示到托盘中的图标

PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单

final MenuItem show = new MenuItem("打开程序");

final MenuItem exit = new MenuItem("退出程序");

pop.add(show);

pop.add(exit);

trayIcon = new TrayIcon(icon.getImage(),"系统托盘", pop);//实例化托盘图标

trayIcon.setImageAutoSize(true);

//为托盘图标监听点击事件

trayIcon.addMouseListener(new MouseAdapter()

{

public void mouseClicked(MouseEvent e)

{

if(e.getClickCount()== 2)//鼠标双击图标

{

// trayIcon.displayMessage("警告", "这是一个警告提示!", TrayIcon.MessageType.WARNING);

// trayIcon.displayMessage("错误", "这是一个错误提示!", TrayIcon.MessageType.ERROR);

//trayIcon.displayMessage("信息", "这是一个信息提示!", TrayIcon.MessageType.INFO);

//tray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标

frame.setExtendedState(JFrame.NORMAL);//设置状态为正常

frame.setVisible(true);//显示主窗体

}

}

});

//选项注册事件

ActionListener al2=new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

//退出程序

if(e.getSource()==exit)

{

System.exit(0);//退出程序

}

//打开程序

if(e.getSource()==show)

{

frame.setExtendedState(JFrame.NORMAL);//设置状态为正常

frame.setVisible(true);

}

}

};

exit.addActionListener(al2);

show.addActionListener(al2);

try

{

tray.add(trayIcon); // 将托盘图标添加到系统的托盘实例中

}

catch(AWTException ex)

{

ex.printStackTrace();

}

//为主窗体注册窗体事件

frame.addWindowListener(new WindowAdapter()

{

//窗体最小化事件

public void windowIconified(WindowEvent e)

{

frame.setVisible(false);//使窗口不可视

frame.dispose();//释放当前窗体资源

}

});

//加个定时监听,每到什么时候就提醒

try

{

java.util.Timer timer = new java.util.Timer();

timer.schedule(new TimerTask() {

public void run() {

String eet="2012-08-28 17:39:30";

String str=thisTime().replace("-","").replace(":","").replace(" ","");

String str1=eet.replace("-","").replace(":","").replace(" ","");

int et=Integer.parseInt(str.substring(4));

int et1=Integer.parseInt(str1.substring(4));

int t=0;

if(et1-et<=0)

{

t++;

if(t<2)

{

trayIcon.displayMessage("警告", "这是一个警告提示!", TrayIcon.MessageType.WARNING);

}

}

}

}, 0, 1000);

//监听结束

}

catch(Exception ex)

{

System.out.println("Timer exception");

}

}

public String thisTime()

{

String result="";

SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

TimeZone timeZoneChina = TimeZone.getTimeZone("Asia/Shanghai");//获取中国的时区

df1.setTimeZone(timeZoneChina);//设置系统时区

String mctime=df1.format(new Date());

result=mctime;

return result;

}

public static void main(String[] args)

{

new MyTray();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值