欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-03 17:49:10
系统托盘也就是桌面右下角的图标。。 此程序实现的功能是点击窗体关闭按钮不退出程序,而是隐藏到系统托盘里面。 实质上也只是把窗体不可见了。。。 impo...

系统托盘也就是桌面右下角的图标。。
此程序实现的功能是点击窗体关闭按钮不退出程序,而是隐藏到系统托盘里面。
实质上也只是把窗体不可见了。。。

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

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();
 }
}