代码如下:

package com.b510.tray托盘;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.UIManager;

public class DesktopCapture extends JFrame implements ActionListener {

/**

* 1.改变双击托盘截图为单击托盘截图 2.修复了托盘后无反应BUG 3.将放大镜提示框移至左上角和右上角

*/

private static final long serialVersionUID = 1L;

// JButton confirm;

// BufferedImage desktopImg;

MyTray tray;

boolean iconed = false;

public DesktopCapture() {

super("EasyCapture");

init();

// 当点击"-"最小化按钮时,系统会最小化到托盘

addWindowListener(new WindowAdapter() {

public void windowIconified(WindowEvent e) {

iconed = true;

setVisible(false);

}

// 当点击"X"关闭窗口按钮时,会询问用户是否要最小化到托盘

// 是,表示最小化到托盘,否,表示退出

public void windowClosing(WindowEvent e) {

int option = JOptionPane.showConfirmDialog(DesktopCapture.this,

"是否最小化到托盘?", "提示:", JOptionPane.YES_NO_OPTION);

if (option == JOptionPane.YES_OPTION) {

iconed = true;

setVisible(false);

} else {

System.exit(0);

}

}

});

pack();

setSize(350, 230);

setLocation(500, 300);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setResizable(false);

setVisible(true);

}

void init() {

tray = new MyTray(DesktopCapture.this);

}

// 截图

public void capture() {

}

public static void main(String[] args) {

// TODO Auto-generated method stub

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

DesktopCapture desk = new DesktopCapture();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

@Override

public void actionPerformed(ActionEvent e) {

}

}

/tray/src/com/b510/tray托盘/MyTray.java

代码如下:

package com.b510.tray托盘;

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.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

public class MyTray implements ActionListener, MouseListener {

private Image icon;// 图标

private TrayIcon trayIcon;

private SystemTray systemTray;// 系统托盘

private DesktopCapture frame; // 托盘所属主窗体

private PopupMenu pop = new PopupMenu(); // 弹出菜单

private MenuItem capture = new MenuItem("capture");

private MenuItem show = new MenuItem("open");

private MenuItem exit = new MenuItem("exit");

public MyTray(DesktopCapture frame) {

this.frame = frame;

// icon = Toolkit.getDefaultToolkit().getImage("./images/xiaomai.png");

icon = new ImageIcon(this.getClass().getClassLoader().getResource(

"image/xiaomai.png")).getImage();

if (SystemTray.isSupported()) {

systemTray = SystemTray.getSystemTray();

trayIcon = new TrayIcon(icon, "单击直接截图-EasyCapture", pop);

pop.add(capture);

pop.add(show);

pop.add(exit);

try {

systemTray.add(trayIcon);

} catch (AWTException e1) {

e1.printStackTrace();

trayIcon.addMouseListener(this);

}

}

trayIcon.addMouseListener(this);

show.addActionListener(this);

exit.addActionListener(this);

capture.addActionListener(this);

}

@Override

public void actionPerformed(ActionEvent e) {

if (e.getSource() == show) {

frame.iconed = false;

frame.setVisible(true);

frame.setExtendedState(JFrame.NORMAL);

} else if (e.getSource() == capture) {

frame.capture();

} else {

System.exit(0);

}

}

// ����¼�

@Override

public void mouseClicked(MouseEvent e) {

if (e.getClickCount() == 1 && e.getButton() != MouseEvent.BUTTON3) {

frame.capture();

}

}

@Override

public void mouseEntered(MouseEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void mouseExited(MouseEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void mousePressed(MouseEvent arg0) {

// TODO Auto-generated method stub

}

@Override

public void mouseReleased(MouseEvent arg0) {

// TODO Auto-generated method stub

}

}

java 托盘开发_基于java开发之系统托盘的应用相关推荐

  1. java 快递项目_基于SpringBoot开发的Java快递代拿系统

    该项目基于 [基于SSM开发的Java快递代拿系统] 项目全面升级,使用当前最为流行的 SpringBoot 框架,相关技术栈全面更新!是您深入学习 SpringBoot 开发的最佳实践! 相关技术栈 ...

  2. 抽奖功能java开发_基于Java实现抽奖系统

    摘要:这篇Java开发技术栏目下的"基于Java实现抽奖系统",介绍的技术点是"抽奖系统.Java.抽奖.基于.系统.实现",希望对大家开发技术学习和问题解决有 ...

  3. 基于java的物流信息_基于Java EE的物流信息系统的开发设计

    开发案 例 现代计算机 2010.12 基于 Java EE 的物流信息系统的开发设计 廖作斌 (福建泉州师范学院数学与计算机科学学院, 泉州 362000) 关键词: Java EE: 信息系统: ...

  4. java swing 皮肤_基于Java Swing开发好看的皮肤

    先介绍几款开源及商业的皮肤. Weblaf:非常赞的套件,界面现代.简约.依赖包较少. 有开源也有商业协议,个人最喜欢的皮肤. https://github.com/mgarin/weblaf Pgs ...

  5. java 雅思_基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)

    基于JAVA的雅思考试管理系统的设计与实现(SSH,MySQL)(含录像)(任务书,毕业论文12000字,程序代码,MySQL数据库) 本文分析了基于JAVA的雅思考试管理系统的设计与实现技术,结合实 ...

  6. java全文检索功能_基于Java的全文检索引擎简介

    Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基 ...

  7. java中介系统平台_基于JAVA的房屋中介管理系统的设计与实现.ppt

    基于JAVA的房屋中介管理系统的设计与实现 校友录管理系统 的设计与实现 院系: 华科学院经济与管理系 班级 :电子商务102202H 姓名 :王 爽 学号: 201022120225 指导教师 :王 ...

  8. java图片管理系统_基于Java的图片管理信息系统的设计与实现

    收稿日期:2003 - 05 - 07 作者简介:谭 娜(1978 -) ,女 ,河南济源人 ,硕士研究生 ,主要研究方向为数据库理论与应用. 基于 Java 的图片管理信息系统的设计与实现 谭 娜1 ...

  9. java自定义配置文件_基于java读取并引用自定义配置文件

    基于java读取并引用自定义配置文件 首先在resources目录创建自定义的配置文件 配置文件的格式: 写工具类,得到配置参数 import java.io.IOException; import ...

最新文章

  1. linux中光标向上调一行命令,Linux vi 中移动光标 命令
  2. 《自然》杂志:关于人类未来的工作,有三个最紧迫的问题
  3. IE8抢先尝试——色眼窥观版(多图)
  4. 强烈推荐Bulletproof Ajax 中文版
  5. 可再生能源建设提速 风电光伏业高景气可期
  6. 破解MS Word 的只读密码限制
  7. 关于tomcat启动失败的一个原因
  8. 对象 对象 java 1615134277
  9. spring boot 初始化表
  10. 论坛首页调用 来自 http://bbs.apabi.com
  11. 已免押1000亿!芝麻信用:靠信用出去浪
  12. 告别传统商务海报版式|绚丽色彩的你,感觉更具现代与活力
  13. android (java) 网络发送get/post请求参数设置
  14. java 提取文字内容_Java 提取PDF文本内容
  15. 鸿蒙系统PC具体配置要求,原神pc电脑配置多少 原神游戏最低配置一览
  16. 短信API接口怎么调用
  17. MISC攻防世界高手进阶区7-12题
  18. 畅游高管曝出“k事件” 搜狐的老本往后怎么“吃”?
  19. Java------IO流之文件专属流
  20. matlab软件_MATLAB软件概述

热门文章

  1. python入职要求_Python入职面试,可能会被企业HR问到的问题,你准备好了吗
  2. 用三元操作符替代if-else以降低CPU分支预测惩罚实现Unity内函数13倍提速
  3. tablewidget 行数自适应_PS滤镜知识:详解自适应广角滤镜的概括以及使用方式。...
  4. 阿里云ACE认证之理解CDN技术
  5. jq根据文本显示内容设置样式
  6. Android studio 常用快捷键的使用
  7. ant-build.xml打包报错解决方法
  8. 触控游戏的设计—Windows Phone 7游戏开发
  9. Go语言教程,电子书,PDF格式
  10. PHP apache2.2 mysql 的安装