Java实现把窗体隐藏到系统托盘方法

 更新时间:2015年05月20日 10:37:29   投稿:junjie  
这篇文章主要介绍了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();
 }
}

相关文章

  • Spring Boot启动过程完全解析(一)

    Spring Boot启动过程完全解析(一)

    这篇文章主要介绍了Spring Boot启动过程完全解析(一),需要的朋友可以参考下
    2017-04-04
  • java基础详解之数据类型知识点总结

    java基础详解之数据类型知识点总结

    这篇文章主要介绍了java基础详解之数据类型知识点总结,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很大的帮助,需要的朋友可以参考下
    2021-04-04
  • Java中使用Jedis操作Redis的示例代码

    Java中使用Jedis操作Redis的示例代码

    本篇文章主要介绍了Java中使用Jedis操作Redis的示例代码,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • 在JSP页面内编写java代码方法总结

    在JSP页面内编写java代码方法总结

    在本篇文章里小编给大家分享了关于在JSP页面内编写java代码方法和步骤,有需要的朋友们学习下。
    2019-01-01
  • Java基础必学TreeSet集合

    Java基础必学TreeSet集合

    这篇文章主要介绍了Java必学基础TreeSet集合,TreeSet集合实现了SortedSet接口, 可以对集合中元素进行自然排序, 要求集合中的元素必须是可比较的。下文详细介绍需要的朋友可以参考一下
    2022-04-04
  • Java 详细讲解线程的状态及部分常用方法

    Java 详细讲解线程的状态及部分常用方法

    在Java程序中,一个线程对象只能调用一次start()方法启动新线程,并在新线程中执行run()方法。一旦run()方法执行完毕,线程就结束了,本篇来讲解Java线程的状态以及部分常用方法
    2022-04-04
  • Java中的forEach循环详细解读

    Java中的forEach循环详细解读

    这篇文章主要介绍了Java中的forEach循环详细解读,不要再foreach循环里面进行元素的add和remove,如果你非要进行remove元素,那么请使用Iterator方式,如果存在并发,那么你一定要选择加锁,需要的朋友可以参考下
    2023-12-12
  • Java代码注释规范(动力节点整理)

    Java代码注释规范(动力节点整理)

    代码注释是架起程序设计者与程序阅读者之间的通信桥梁,最大限度的提高团队开发合作效率。也是程序代码可维护性的重要环节之一。下面通过本文说一下我们在日常开发中使用的代码注释规范
    2017-03-03
  • spring boot集成p6spy的最佳实践

    spring boot集成p6spy的最佳实践

    这篇文章主要介绍了spring boot集成p6spy的最佳实践-p6spy-spring-boot-starter的项目案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02
  • 使用eclipse + maven一步步搭建SSM框架教程详解

    使用eclipse + maven一步步搭建SSM框架教程详解

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架.这篇文章主要介绍了eclipse + maven搭建SSM框架 ,需要的朋友可以参考下
    2017-11-11

最新评论