JAVA添加托盘图标和托盘弹出式菜单

很多程序在运行的过程中会在系统的托盘区域添加托盘图标,方便用户快捷操作,如QQ等,在JDK1.6及其以后的版本中,JAVA也提供了对系统托盘图标的支持。
我们以系统上的网络连接托盘图标为例,首先,我们也准备一张托盘图标,建议分辨率:16*16,支持jpg、gif、png等格式,不支持ico格式的,这是需要注意的。

import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class SystemTrayDemo
{
   public static void main(String[] args)
   {
      // 判断是否支持系统托盘
      if (SystemTray.isSupported())
      {
         // 获取图片所在的URL
         URL url = SystemTrayDemo.class.getResource("networking.png");
         // 实例化图像对象
         ImageIcon icon = new ImageIcon(url);
         // 获得Image对象
         Image image = icon.getImage();
         // 创建托盘图标
         TrayIcon trayIcon = new TrayIcon(image);
         // 为托盘添加鼠标适配器
         trayIcon.addMouseListener(new MouseAdapter()
         {
            // 鼠标事件
            public void mouseClicked(MouseEvent e)
            {
               // 判断是否双击了鼠标
               if (e.getClickCount() == 2)
               {
                  JOptionPane.showMessageDialog(null, "SystemTrayDemo");
               }
            }
         });
         // 添加工具提示文本
         trayIcon.setToolTip("本地连接\r\n速度:100.0 Mbps\r\n状态:已连接上");
         // 创建弹出菜单
         PopupMenu popupMenu = new PopupMenu();
         popupMenu.add(new MenuItem("禁用(D)"));
         popupMenu.add(new MenuItem("状态(S)"));
         popupMenu.add(new MenuItem("修复(P)"));
         popupMenu.addSeparator();
         popupMenu.add(new MenuItem("更改 Windows 防火墙设置(C)"));
         popupMenu.addSeparator();
         popupMenu.add(new MenuItem("打开网络连接(O)"));

         // 为托盘图标加弹出菜弹
         trayIcon.setPopupMenu(popupMenu);
         // 获得系统托盘对象
         SystemTray systemTray = SystemTray.getSystemTray();
         try
         {
            // 为系统托盘加托盘图标
            systemTray.add(trayIcon);
         }
         catch (Exception e)
         {
            e.printStackTrace();
         }
      }
      else
      {
         JOptionPane.showMessageDialog(null, "not support");
      }
   }
}

运行结果:

时间: 2025-01-16 05:26:57

JAVA添加托盘图标和托盘弹出式菜单的相关文章

pdf-关于java添加PDF附件的问题

问题描述 关于java添加PDF附件的问题 请教各位大侠,我用pdfbox或者itext把文件作为附件添加到PDF文件后,该附件可以正常打开,打开后内容正确.只是发现当文件名包含中文时(例如 测试.doc),在PDF的附件列表中显示的附件名称为乱码.当文件名为英文时(例如 test.doc)不存在该问题. 小弟在工作当中遇到该问题,没有币悬赏了但是真的很着急,请大侠帮帮忙,小弟感激不尽啊

Java添加事件监听的四种方法代码实例_java

Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动): /** * Java事件监听处理--自身类实现ActionListener接口,作为事件监听器 * * @author codebrother */ class EventListener1 extends JFrame implements ActionListener { private JButton btBlue, btDialog; public EventListener1() { setTitle(

java添加(修改)一段查询数据库并返回的代码

问题描述 java添加(修改)一段查询的代码,查询的按钮是我自己添加的,但是功能不会写了...数据库(表)有学号.姓名.性别.年龄.班级.java成绩最后一个模块查询的窗口是直接复制的添加窗口.我的意思是用添加窗口,在里面输入要查询的内容后,点击按钮,在其余文本框显示出来其他内容....代码太多了..接二楼....packagestudentinfo;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.s

java 添加记录到数据库

java 添加记录到数据库教程 这应该是一款基本的java入门教程哦,他是先连接数据库,如果数据库连接成功后,再尝试把用户提交的数据添加到数据表哦. import java.sql.*; public class register {     string logname,realname,password,email,phone,address;     string message;     connection con;     statement sql;     resultset r

基于java开发之系统托盘的应用_java

项目结构: 开发之系统托盘的应用_java-java 系统托盘"> 运行效果: ======================================================================== 下面是代码部分: ======================================================================== /tray/src/com/b510/tray托盘/DesktopCapture.java 复制代码 代

java添加sql的时候显示tcp/ip无效,但是sql配置都已经改完了,求大神指点,找了一下午找不到答应!

问题描述 需要修改的东西都改了,请问这里的问题出在那里?电脑问题?求指教怎么解决,百度了一下午,还是找不到答案.谢谢各位师傅了,在线等! 解决方案

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

给托盘添加右击菜单变化的背景图

图1 变化的背景图 给托盘添加右击菜单 一般的商业程序都有托盘图标和在托盘上弹出右击菜单的功能,那么如何给自已的程序添加这样的功能呢?本文通过改变背景图的实例,介绍一种实现托盘上弹出右击菜单的方法.  一.添加托盘图标 给程序添加托盘图标的方法在很多VC书中都有实例,通常在程序中按下面的步骤就可以实现: 1.在XXDlg.CPP文件头部加入 #define WM_NOTIFYICONWM_USER+5   NOTIFYICONDATA nd; 2.在程序的初始化中加入下面代码 nd.cbSize

java界面-Java怎么给窗口添加背景图片

问题描述 Java怎么给窗口添加背景图片 package Three; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class CopyOfTest3 { JFrame frame = new JFrame("小小熊^_^管理系统&g