java如何用swing修改系统托盘图标

java如何用swing修改系统托盘图标,第1张

if(SystemTray.isSupported()){//判断系统是否托盘

//创建一个托盘图标对象

TrayIcon icon = new TrayIcon(Toolkit.getDefaultToolkit().getImage(Clock.class.getResource("/javax/swing/plaf/basic/icons/JavaCup16.png")))

//创建d出菜单

PopupMenu menu = new PopupMenu()

//添加一个用于退出的按钮

MenuItem item = new MenuItem("退出")

item.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

System.exit(0)

}

})

menu.add(item)

//添加d出菜单到托盘图标

icon.setPopupMenu(menu)

SystemTray tray = SystemTray.getSystemTray()//获取系统托盘

tray.add(icon)//将托盘图表添加到系统托盘

}

在项目根下新建resources目录,然后把resources目录加到Build Path里。

把images\icon.png放到resources目录下。

TrayIcon trayIcon = new TrayIcon(ImageIO.read(getClass().getClassLoader().getResource("images/icon.png")))

java

最小化到系统托盘

2010-09-06 15:32

package test

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.MouseAdapter

import java.awt.event.MouseEvent

import java.awt.event.WindowAdapter

import java.awt.event.WindowEvent

import javax.swing.ImageIcon

import javax.swing.JFrame

import javax.swing.JPanel

import javax.swing.SwingUtilities

public class MyTray {

TrayIcon trayIcon//

托盘图标,但不是

Image

类型的

SystemTray Tray//

系统托盘

Image

img=(new

ImageIcon("images/icon.png")).getImage()//

托盘图标,建

议使用较小的图片

public MyTray(){

final JFrame frame=new JFrame()

JPanel jp=new JPanel()

frame.add(jp)

frame.setSize(320,240)

frame.setLocationRelativeTo(null)

frame.setResizable(false)

frame.setIconImage(img)//

设置窗口左上角的图标

frame.setVisible(true)

Tray=SystemTray.getSystemTray()//

获得系统托盘实例

//

创建系统托盘的右键d出菜单

PopupMenu pm=new PopupMenu()

MenuItem mi0=new MenuItem("Open")

MenuItem mi1=new MenuItem("Close")

pm.add(mi0)

pm.add(mi1)

trayIcon=new TrayIcon(img,"",pm)//

创建托盘图标实例

trayIcon.setImageAutoSize(true)//

图标自动适应托盘,也就是说它自动

改变大小

trayIcon.setToolTip(" ")//

设置提示语

//

添加系统托盘图标

frame.addWindowListener(new

WindowAdapter()

{//

当“关闭”窗口时,最

小化到系统托盘

public void windowClosing(WindowEvent e) {

try {

Tray.add(trayIcon)

} catch (AWTException exc) {

exc.printStackTrace()

}

}})

mi0.addActionListener(new ActionListener(){ //

右键d出菜单的事件

监听

public void actionPerformed(ActionEvent e) {

frame.setExtendedState(JFrame.NORMAL)

frame.setVisible(true)

Tray.remove(trayIcon)

}

})

mi1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

System.exit(0)

Tray.remove(trayIcon)//

退出程序,移出系统托盘处的图标


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11360696.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存