java应用程序-系统托盘
2015-12-26 10:19
429 查看
本实例是用来制作应用程序的系统托盘,比如类似qq在窗体的右下角的图标格式。代码直接复制可用。
import java.awt.AWTException; import java.awt.Image; 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.net.URL; import javax.swing.*; public class SystemTrayDemo extends JFrame{ /** * 为程序添加系统托盘 */ private ImageIcon imageIcon; private TrayIcon trayIcon; private PopupMenu popMenu; private MenuItem exit,show; private SystemTray systemTray; //构造方法 public SystemTrayDemo() { if (SystemTray.isSupported()) { //判断是否支持系统托盘 //以system.png为图片创建图标,图片system.png在你的工程目录下(eclipse中,其它IDE没有测试) imageIcon = new ImageIcon("images/q.png"); trayIcon = new TrayIcon(imageIcon.getImage()); //创建托盘图标 trayIcon.setToolTip("系统托盘"); popMenu = new PopupMenu(); //创建弹出菜单 //创建菜单项 exit = new MenuItem("退出"); show = new MenuItem("显示主窗体"); //添加到popMenu popMenu.add(show); popMenu.add(exit); trayIcon.setPopupMenu(popMenu); systemTray = SystemTray.getSystemTray(); //获得托盘对象 try { systemTray.add(trayIcon); //添加托盘图标 } catch (AWTException e) { e.printStackTrace(); } //添加监听器 exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); show.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { showFrame(); } }); } } //显示窗体 public void showFrame() { setVisible(true); } //Main method public static void main(String[] args) { JFrame frame = new SystemTrayDemo(); frame.setTitle("使用系统托盘"); frame.setSize(300,200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //注意: 不能设置为JFrame.EXIT_ON_CLOSE,否则会直接退出程序 } }
相关文章推荐
- 《Java Web 程序开发入门》知识总结
- 死磕Spring系列之四 BeanDefinition接口、BeanFactory接口
- Java 多线程(四) 多线程访问成员变量与局部变量
- [javase学习笔记]-7.6 this关键字之原理
- java中long和double类型操作的非原子性探究
- java 打包下载文件
- Java 多线程(三) 线程的生命周期及优先级
- 5本最佳的Java面向对象理论和设计模式的书籍
- Java_ststic_静态块
- Java_String_字符串操作
- java学习
- Spring学习第三天——Spring MVC,使用注解方式,intellij的代码说明,ajax,文件的上传下载
- Eclipse右键New菜单项的自定义设置
- MyEclipse8.5破解方法
- SpringMVC源代码深度分析DispatcherServlet核心的控制器(初始化)
- 解决Myeclipse下Debug出现Source not found以及sql server中导入数据报错
- opencv java中打开视频问题
- XMPP之openfire运行时需要32bit,但是安装的Java却是64bit
- Java基础--正则表达式
- Java获取明天日期