java swing 最小化到托盘_用Java实现程序最小化到托盘区
我在程序中实测必须是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实现程序最小化到托盘区相关推荐
- java swing多人聊天室_使用java swing和socket编程实现简单的多人聊天室-Go语言中文社区...
完成效果如下 客户端: 服务器端: 客户端功能: 输入服务器对应的端口,IP号,用户名(昵称),可以互相发送消息 服务器端功能: 输入端口号,启动,可以向所有客户端发送消息,IP地址自动获取. 下面是 ...
- 用 java swing 编写的富文本编辑器,成品小程序,拿来即可用
这里写自定义目录标题 用 java swing 编写的富文本编辑器,成品小程序,拿来即可用 用 java swing 编写的富文本编辑器,成品小程序,拿来即可用 前言 在最开始的开始,我也一直在找一个 ...
- java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程
作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...
- java swing列表数据加监听,【Java Swing公开课|Java监听列表项选择事件怎么用,看完这篇文章你一定就会了】- 环球网校...
[摘要]作为一门面向对象编程语言,Java吸收了C++语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的 ...
- java制作一个简单的画板_【Java】Thymeleaf一个简单示例
Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...
- java监听鼠标接口实现_自定义Java鼠标监听器?
首先,我作为网站程序员来到Java.在JavaScript中,您只需调用addEventListener函数即可添加mousemove,mouseover或click事件.根据我对Java的有限经验, ...
- java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...
@ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...
- 用Java Swing设计Email邮箱地址注册的图形用户界面程序
当用户输入完成后单击"立即注册"按,判断"密码"和"确认密码"文本框内容是否一致,如果一致在立即注册按钮上方显示用户输入的邮件地址,否则显示 ...
- 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 ...
最新文章
- 【c语言】蓝桥杯入门训练 序列求和
- SAP PM 入门系列18 - IP25为维护计划 Set Deletion Flag
- Google 公司的 Java 语言编写规范
- 机器人也是“艺术家”!上海世界移动大会聚焦5G时代
- Oracle创建命名空间和新用户
- spring boot 表单的实体提交错误:Validation failed for object='book'. Error count: 2
- 【华科考研机试题】最长最短文本
- a5d2 phy驱动
- viewpager 跳转到指定页面
- 互联网晚报 | 8月11日 星期三 | 苏炳添成为小米品牌代言人;联想企业购正式上线;中国电信A股IPO战略配售结果出炉...
- wampserver的phpmyadmin(默认3306)端口如何更改为3307?
- EDLines: A real-time line segment detector with a false detection control
- 由数据库连接池想到的----处理他人未释放的资源
- 电网调度计算机系统目前有三种,电力系统知识问答(三)
- windows下面NTP服务器配置,局域网
- excel二极管伏安特性曲线_电视机不被烧,是因为它?一个拥有反向特性的稳压二极管...
- ionic5 ion-refresher下拉更新
- word怎么添加水印 word添加水印后为什么看不见
- 联想笔记本一键还原出现 “系统分区结构发生改变,无法进行恢复操作”怎样处理。
- Ubuntu 18.04桌面版卸载不必要的自带软件
热门文章
- 2018-2019 ACM-ICPC, Asia Jiaozuo Regional Contest题解
- POJ1214 UVA127 Accordian Patience【vector】
- Vijos P1691 输油管道问题【中位数+排序】
- 杜甫的《望岳》在哪里作的?山脚下还是山头上?
- 阶乘与 pi 的关系 —— 斯特林公式(Stirling formula)
- Python 数据结构与算法——二叉搜索树的实现
- dr. unarchiver_1F 新店开业男士一生仅能定制一枚的钻戒,DR 教你用一生爱一人
- python基础30个常用代码-30 个Python代码实现的常用功能,精心整理版
- python与excel-Python 与 Excel 不得不说的事
- python的第三方库是干什么用的-python一些工作用到的第三方库