java 创建闪动托盘图标

本文介绍了一个使用Java实现的托盘程序,该程序可以创建闪动的托盘图标,并且能够响应用户点击事件显示窗口或退出程序。通过创建系统托盘对象、托盘图标及弹出菜单等功能,实现了托盘图标的基本交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天受网友之托,写了一个类似QQ的山东托盘对象,觉得有点意思,就记录在这里
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.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

import org.omg.CORBA.PUBLIC_MEMBER;

/**
 * 创建闪动的托盘图像
 * @author 黄根华 
 */
public class TestTray extends JFrame implements Runnable {

 private SystemTray sysTray;// 当前操作系统的托盘对象

 private TrayIcon trayIcon;// 当前对象的托盘

 private int num = 10;

 ImageIcon icon = null;

 public TestTray() {
  this.createTrayIcon();// 创建托盘对象
  init();
 }

 /**
  * 初始化窗体的方法
  */
 /**
  *
  */
 public void init() {
  this.setTitle("闪动托盘");
  this.setSize(400, 400);
  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  this.setLocationRelativeTo(null);
  // 添加窗口事件,将托盘添加到操作系统的托盘
  this.addWindowListener(new WindowAdapter() {

   public void windowIconified(WindowEvent e) {
    addTrayIcon();
   }
  });

  this.setVisible(true);
 }

 /**
  * 添加托盘的方法
  */
 public void addTrayIcon() {
  try {
   sysTray.add(trayIcon);// 将托盘添加到操作系统的托盘
   setVisible(false);// 使得当前的窗口隐藏
   new Thread(this).start();
  } catch (AWTException e1) {
   e1.printStackTrace();
  }
 }

 /**
  * 创建系统托盘的对象 步骤: 1,获得当前操作系统的托盘对象 2,创建弹出菜单popupMenu 3,创建托盘图标icon
  * 4,创建系统的托盘对象trayIcon
  */
 public void createTrayIcon() {
  sysTray = SystemTray.getSystemTray();// 获得当前操作系统的托盘对象
  icon = new ImageIcon("img/semayer.gif");// 托盘图标
  PopupMenu popupMenu = new PopupMenu();// 弹出菜单
  MenuItem mi = new MenuItem("弹出");
  MenuItem exit = new MenuItem("关闭");
  popupMenu.add(mi);
  popupMenu.add(exit);
  // 为弹出菜单项添加事件
  mi.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
    setVisible(true);
    sysTray.remove(trayIcon);
   }
  });
  exit.addActionListener(new ActionListener() {

   public void actionPerformed(ActionEvent e) {
    System.exit(0);
   }
  });
  trayIcon = new TrayIcon(icon.getImage(), "闪动托盘", popupMenu);
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  TestTray testTray = new TestTray();
 }

 /*
  * 线程控制闪动 (non-Javadoc)
  *
  * @see java.lang.Runnable#run()
  */
 public void run() {
  while (num >= 0) {
   this.trayIcon.setImage(new ImageIcon("").getImage());
   try {
    Thread.sleep(300);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   this.trayIcon.setImage(icon.getImage());
   try {
    Thread.sleep(300);
   } catch (InterruptedException e) {
    e.printStackTrace();
   }
   num--;
  }
 }

}

内容概要:本文详细探讨了基于阻尼连续可调减振器(CDC)的半主动悬架系统的控制策略。首先建立了CDC减振器的动力学模型,验证了其阻尼特性,并通过实验确认了模型的准确性。接着,搭建了1/4车辆悬架模型,分析了不同阻尼系数对悬架性能的影响。随后,引入了PID、自适应模糊PID和模糊-PID并联三种控制策略,通过仿真比较它们的性能提升效果。研究表明,模糊-PID并联控制能最优地提升悬架综合性能,在平顺性和稳定性间取得最佳平衡。此外,还深入分析了CDC减振器的特性,优化了控制策略,并进行了系统级验证。 适用人群:从事汽车工程、机械工程及相关领域的研究人员和技术人员,尤其是对车辆悬架系统和控制策略感兴趣的读者。 使用场景及目标:①适用于研究和开发基于CDC减振器的半主动悬架系统的工程师;②帮助理解不同控制策略(如PID、模糊PID、模糊-PID并联)在悬架系统中的应用及其性能差异;③为优化车辆行驶舒适性和稳定性提供理论依据和技术支持。 其他说明:本文不仅提供了详细的数学模型和仿真代码,还通过实验数据验证了模型的准确性。对于希望深入了解CDC减振器工作原理及其控制策略的读者来说,本文是一份极具价值的参考资料。同时,文中还介绍了多种控制策略的具体实现方法及其优缺点,为后续的研究和实际应用提供了有益的借鉴。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值