本文链接: http://blog.csdn.net/xietansheng/article/details/78389278

Java Swing 图形界面开发(目录)

1. 概述

官方JavaDocsApi:

  • java.swing.SystemTray
  • java.awt.TrayIcon

系统托盘(System Tray)就是 最小化图标,程序以最小化图标的方式保持运行状态,Windows系统最小化到右下角的底部任务栏,MAC OS X 最小化到顶部菜单栏,如下图所示:

系统托盘开发一般步骤及相关方法:

// 判断当前平台是否支持系统托盘
SystemTray.isSupported();// 获取到当前平台的系统托盘
SystemTray tray = SystemTray.getSystemTray();// 创建一个托盘图标(这个图标就表示最小化后的应用),其中 popup 是点击托盘图标时弹出的菜单列表
TrayIcon trayIcon = new TrayIcon(Image image, String tooltip, PopupMenu popup);// 设置自动调整图标大小以适应当前平台的托盘图标显示
trayIcon.setImageAutoSize(true);// 根据需要可在随时改变显示的图标
// trayIcon.setImage(Image image);// 根据需要可随时改变点击时的弹出菜单
// trayIcon.setPopupMenu(PopupMenu popup);// 添加托盘图标的动作监听器(鼠标右键的点击监听)
trayIcon.addActionListener(ActionListener listener);// 添加托盘图标的鼠标监听器(包括鼠标所有按键的监听)
trayIcon.addMouseListener(MouseListener listener);// 添加托盘图标到系统托盘(一个应用程序可添加多个托盘图标)
tray.add(trayIcon);// 从系统托盘移除图标
// tray.remove(trayIcon);

2. 代码实例

这里使用下面这个图片作为托盘图标,放在工作目录下,命名为: tray.jpg

package com.xiets.swing;import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;public class Main {public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() {@Overridepublic void run() {createGUI();}});}private static void createGUI() {JFrame jf = new JFrame("系统托盘测试");jf.setSize(300, 300);jf.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); // 点击关闭按钮时隐藏窗口jf.setLocationRelativeTo(null);/** 添加系统托盘*/if (SystemTray.isSupported()) {// 获取当前平台的系统托盘SystemTray tray = SystemTray.getSystemTray();// 加载一个图片用于托盘图标的显示Image image = Toolkit.getDefaultToolkit().getImage("tray.jpg");// 创建点击图标时的弹出菜单PopupMenu popupMenu = new PopupMenu();MenuItem openItem = new MenuItem("打开");MenuItem exitItem = new MenuItem("退出");openItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 点击打开菜单时显示窗口if (!jf.isShowing()) {jf.setVisible(true);}}});exitItem.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 点击退出菜单时退出程序System.exit(0);}});popupMenu.add(openItem);popupMenu.add(exitItem);// 创建一个托盘图标TrayIcon trayIcon = new TrayIcon(image, "这是一个托盘图标", popupMenu);// 托盘图标自适应尺寸trayIcon.setImageAutoSize(true);trayIcon.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.out.println("托盘图标被右键点击");}});trayIcon.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {switch (e.getButton()) {case MouseEvent.BUTTON1: {System.out.println("托盘图标被鼠标左键被点击");break;}case MouseEvent.BUTTON2: {System.out.println("托盘图标被鼠标中键被点击");break;}case MouseEvent.BUTTON3: {System.out.println("托盘图标被鼠标右键被点击");break;}default: {break;}}}});// 添加托盘图标到系统托盘try {tray.add(trayIcon);} catch (AWTException e) {e.printStackTrace();}} else {System.out.println("当前系统不支持系统托盘");}jf.setVisible(true);}}

结果展示:


JavaSwing_5.6: 系统托盘(System Tray)相关推荐

  1. 【electron】electron-builder-start 实现系统托盘(tray)

    练习代码git:https://github.com/SmileEricXin/electronPractice.git //src\main\index.js 做以下修改// 新增调用 import ...

  2. PS Tray Factory win7 系统托盘 软件用法

    PS Tray Factory 软件网址: http://www.pssoftlab.com/hide_system_tray_icons.phtml 这个软件是作用是可以 通过 Ctrl +ALT ...

  3. java对托盘加监听右击报错_java实现系统托盘示例

    桌面的系统托盘即当程序最小化或者关闭按钮程序并没有退出,而是最小化在任务状态区域(Windows系统),当鼠标点击那个区域所在的图标有提示以及其他的操作.在 Microsoft Windows 上,它 ...

  4. Tauri 应用篇 - 系统托盘

    基本配置 编辑 src-tauri/tauri.conf.json 文件 iconAsTemplate 是一个布尔值,用于确定图像是否表示 macOS 上的模板图像[1](为 true 时图像应仅包含 ...

  5. P40 SystemTray系统托盘

    P40 SystemTray系统托盘 1.概述 2.代码实例 3.效果演示 系统:Win10 Java:1.8.0_333 IDEA:2020.3.4 Gitee:https://gitee.com/ ...

  6. 【java】Swing的系统托盘设计

    首先今天我们想来做一个关于java桌面级应用程序的系统托盘设计教程. 完整代码: Image image = Toolkit.getDefaultToolkit().getImage("\\ ...

  7. electron系统托盘与右键菜单

    在main.js里面 ①导入Tray const { app, BrowserWindow, Menu, MenuItem, Tray } = require('electron') ②封装系统托盘函 ...

  8. windows系统托盘tray

    electron tray是一种方法. Add icons and context menus to the system's notification area. python调用win32api也 ...

  9. swt中系统托盘Tray的实现

    在做gui界面的时候,系统托盘是屡见不鲜的功能,也是通用的.基础的功能之一,什么叫做系统托盘呢?就是最小化之后在右下角有个小图标可以还原: 这样的效果在swt中是怎么实现的呢?这里需要用到swt中的T ...

最新文章

  1. Debain 安装ssh
  2. hdu4499 搜索
  3. 国务院学位委员会关于授予具有研究生毕业同等学力人员硕士、博士学位的规定
  4. 多协程实例分析(一)
  5. java动态代理原理及解析
  6. mac系统升级 brew 是用不了_PostgreSQL数据库默默升级,导致数据库服务不可用
  7. [国嵌攻略][125][总线设备驱动模型]
  8. 系统学习机器学习之随机场(二)--MEMM
  9. oracle注意事项
  10. lena图的直方图以及与其他图像的直方图匹配
  11. 小白从零开发鸿蒙小游戏(1)“数字华容道”—【深鸿会学习小组学习心得及笔记】
  12. element UI 表格序号计算 index
  13. 海尔电视 android,海尔电视遥控器
  14. 域名whois查询违规吗_WHOIS域ID隐私保护如何工作? 我需要域名WHOIS隐私吗?
  15. Android中获取屏幕信息的几种方式
  16. python实现自幂数
  17. win10创意者更新是什么 Win10创意者更新升级方法
  18. Python二进制数据处理
  19. 字节抖音电商NLP算法一面
  20. thinkpad e40 安装 nvidia显卡驱动之后

热门文章

  1. 南京审计大学的计算机科学与技术怎么样,南京审计大学计算机科学与技术专业...
  2. 胡图图的学习笔记二呀
  3. 软光栅个人项目介绍,编写思路及后期整理
  4. st语言 数组的常用方法_欧姆龙cp1h常用指令学习(九)结构化语言ST
  5. Java 日历类 Calendar
  6. 2021第四届中国能源化工行业CIO创新论坛在京圆满落幕
  7. mysql无法启动,因为应用程序的并行配置不正确
  8. 该进程为关键系统进程,任务管理器无法结束进程
  9. 关于如何自定义echart地图
  10. python爬取豆瓣读书简单_Python用16行代码就搞定了爬取豆瓣读书页面!