我在程序中实测必须是16*16的图片才行

下面的这个程序简单地实现了把Java应用程序缩小到托盘的方法.

程序运行的jdk要是1.6才行,因为这是J2SDK1.6新加的一些类和方法.

import java.awt.*;

import java.io.*;

import javax.swing.*;

import java.awt.event.*;

import javax.imageio.ImageIO;

public class Test extends JFrame{

private TrayIcon trayIcon;//托盘图标

private SystemTray systemTray;//系统托盘

public Test()

{

super("系统托盘图标");

systemTray = SystemTray.getSystemTray();//获得系统托盘的实例

setSize(150,150);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

try {

trayIcon = new TrayIcon(ImageIO.read(new File("0.gif")));

systemTray.add(trayIcon);//设置托盘的图标,0.gif与该类文件同一目录

}

catch (IOException e1) {e1.printStackTrace();}

catch (AWTException e2) {e2.printStackTrace();}

this.addWindowListener(

new WindowAdapter(){

public void windowIconified(WindowEvent e){

dispose();//窗口最小化时dispose该窗口

}

});

trayIcon.addMouseListener(

new MouseAdapter(){

public void mouseClicked(MouseEvent e){

if(e.getClickCount() == 2)//双击托盘窗口再现

setExtendedState(Frame.NORMAL);

setVisible(true);

}

});

}

public static void main(String args[])

{

new Test();

}

}

另:

package awt;

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.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

public class TrayDemo extends JFrame {

private TrayIcon trayIcon = null; // 托盘图标

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

public static TrayDemo trayDemo = new TrayDemo();

private TrayDemo() {

init();

}

public void init() {

if (SystemTray.isSupported()) { // 如果操作系统支持托盘

this.tray();

}

this.setSize(300, 200);

this.setResizable(false);

// 窗口关闭时触发事件

addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

public void windowIconified(WindowEvent e) {

try {

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

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

dispose();

} catch (AWTException ex) {

ex.printStackTrace();

}

}

});

}

private void tray() {

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

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

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

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

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

pop.add(show);

pop.add(exit);

trayIcon = new TrayIcon(icon.getImage(), "车辆管理系统", pop);

/**

* 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口

*/

trayIcon.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) {

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

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

setExtendedState(JFrame.NORMAL);

setVisible(true); // 显示窗口

toFront();

}

}

});

show.addActionListener(new ActionListener() { // 点击“显示窗口”菜单后将窗口显示出来

public void actionPerformed(ActionEvent e) {

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

setExtendedState(JFrame.NORMAL);

setVisible(true); // 显示窗口

toFront();

}

});

exit.addActionListener(new ActionListener() { // 点击“退出演示”菜单后退出程序

public void actionPerformed(ActionEvent e) {

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

}

});

}

/**

* 显示信息

*/

// 返回单一的实例对象

public static TrayDemo getInstanceTrayDemo() {

return trayDemo;

}

// 处理窗口事件

}

java swing 最小化到托盘_用Java实现程序最小化到托盘区相关推荐

  1. java swing多人聊天室_使用java swing和socket编程实现简单的多人聊天室-Go语言中文社区...

    完成效果如下 客户端: 服务器端: 客户端功能: 输入服务器对应的端口,IP号,用户名(昵称),可以互相发送消息 服务器端功能: 输入端口号,启动,可以向所有客户端发送消息,IP地址自动获取. 下面是 ...

  2. 用 java swing 编写的富文本编辑器,成品小程序,拿来即可用

    这里写自定义目录标题 用 java swing 编写的富文本编辑器,成品小程序,拿来即可用 用 java swing 编写的富文本编辑器,成品小程序,拿来即可用 前言 在最开始的开始,我也一直在找一个 ...

  3. java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程

    作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...

  4. java swing列表数据加监听,【Java Swing公开课|Java监听列表项选择事件怎么用,看完这篇文章你一定就会了】- 环球网校...

    [摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...

  5. java制作一个简单的画板_【Java】Thymeleaf一个简单示例

    Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...

  6. java监听鼠标接口实现_自定义Java鼠标监听器?

    首先,我作为网站程序员来到Java.在JavaScript中,您只需调用addEventListener函数即可添加mousemove,mouseover或click事件.根据我对Java的有限经验, ...

  7. java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...

    @ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...

  8. 用Java Swing设计Email邮箱地址注册的图形用户界面程序

    当用户输入完成后单击"立即注册"按,判断"密码"和"确认密码"文本框内容是否一致,如果一致在立即注册按钮上方显示用户输入的邮件地址,否则显示 ...

  9. java创建的窗口无法关闭_在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java)...

    在Java中添加canvas后无法关闭窗口(Can't close window after adding canvas in Java) public class Screen extends Ca ...

最新文章

  1. 【c语言】蓝桥杯入门训练 序列求和
  2. SAP PM 入门系列18 - IP25为维护计划 Set Deletion Flag
  3. Google 公司的 Java 语言编写规范
  4. 机器人也是“艺术家”!上海世界移动大会聚焦5G时代
  5. Oracle创建命名空间和新用户
  6. spring boot 表单的实体提交错误:Validation failed for object='book'. Error count: 2
  7. 【华科考研机试题】最长最短文本
  8. a5d2 phy驱动
  9. viewpager 跳转到指定页面
  10. 互联网晚报 | 8月11日 星期三 | 苏炳添成为小米品牌代言人;联想企业购正式上线;中国电信A股IPO战略配售结果出炉...
  11. wampserver的phpmyadmin(默认3306)端口如何更改为3307?
  12. EDLines: A real-time line segment detector with a false detection control
  13. 由数据库连接池想到的----处理他人未释放的资源
  14. 电网调度计算机系统目前有三种,电力系统知识问答(三)
  15. windows下面NTP服务器配置,局域网
  16. excel二极管伏安特性曲线_电视机不被烧,是因为它?一个拥有反向特性的稳压二极管...
  17. ionic5 ion-refresher下拉更新
  18. word怎么添加水印 word添加水印后为什么看不见
  19. 联想笔记本一键还原出现 “系统分区结构发生改变,无法进行恢复操作”怎样处理。
  20. Ubuntu 18.04桌面版卸载不必要的自带软件

热门文章

  1. 2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest题解
  2. POJ1214 UVA127 Accordian Patience【vector】
  3. Vijos P1691 输油管道问题【中位数+排序】
  4. 杜甫的《望岳》在哪里作的?山脚下还是山头上?
  5. 阶乘与 pi 的关系 —— 斯特林公式(Stirling formula)
  6. Python 数据结构与算法——二叉搜索树的实现
  7. dr. unarchiver_1F 新店开业男士一生仅能定制一枚的钻戒,DR 教你用一生爱一人
  8. python基础30个常用代码-30 个Python代码实现的常用功能,精心整理版
  9. python与excel-Python 与 Excel 不得不说的事
  10. python的第三方库是干什么用的-python一些工作用到的第三方库