java 托盘制作代码实例

本文提供了一个Java应用程序创建系统托盘图标的示例代码,包括如何设置菜单项及监听器,并展示了如何在Windows XP平台及JDK 1.6环境下实现托盘图标功能。

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

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/** *//**
*使java application生成托盘图标的例子
*本代码在JDK1.6上,Winxp平台上测试通过
*@author:NetJava.org
*/
public class TrayTest
...{
public static void main(String[] args)
...{
PopupMenu popup = new PopupMenu();

MenuItem menuExit = new MenuItem("退出");
MenuItem menuOpen = new MenuItem("打开");
MenuItem menuCancel = new MenuItem("取消");
//创建退出菜单监听器
ActionListener exitListener = new ActionListener() ...{
public void actionPerformed(ActionEvent e)
...{
System.exit(0);
} };
//创建打开监听器
ActionListener openListener = new ActionListener() ...{
public void actionPerformed(ActionEvent e)
...{
JOptionPane.showInputDialog("请输入您的密码:");
}
};
menuExit.addActionListener(exitListener);
menuOpen.addActionListener(openListener);
popup.add(menuOpen);
popup.add(menuCancel);
popup.add(menuExit);
//------------
CreateTray ct =CreateTray.getInstance();
//工作目录下使用的tray图标文件
String ic;
if(!ct.CreteTrayIcon(iconFileName,"我的托盘",popup))
...{
System.out.println("不能创建托盘");
}
}
}


class CreateTray
...{
private CreateTray()...{}
private static CreateTray ct=null;
/** *//**创建单实列*/
public static CreateTray getInstance()
...{
//因为使用了判断语句,所以要用getInstance()方法
if(ct==null)
...{
ct=new CreateTray();
}
return ct;}

/** *//**创建tray,如成功返回true值
@para trayImage:创建tray图标的图片文件名
@para trayName:tray显示名字
@para popup 这个tray上的PopupMenu
*/
public boolean CreteTrayIcon(String trayImage,String trayName,PopupMenu popup)
...{
boolean isCreated=false;
final TrayIcon trayIcon;//TrayIcon是一个预定义的类
if (SystemTray.isSupported())//如果系统支持托盘功能,如windows
...{
SystemTray tray = SystemTray.getSystemTray();//获取一个SystemTray对象
Image image = Toolkit.getDefaultToolkit().getImage(trayImage);//获取一个图标对象
//设定托盘图标,这是核心代码,其余的代码都是重新封装,以利使用
trayIcon = new TrayIcon(image, trayName, popup);
trayIcon.setImageAutoSize(true);
// TrayIcon对象的actionPerfomed()方法只响应双击事件
//托盘名称会作为tooltip在光标移动到托盘时自动显示
final ActionListener al = new ActionListener()...{
public void actionPerformed(ActionEvent e)
...{
trayIcon.displayMessage("托盘事件", "这个双击事件己到", TrayIcon.MessageType.WARNING);
}
};
trayIcon.addActionListener(al);
try
...{
tray.add(trayIcon);//将托盘添加到系统托盘
isCreated=true;
}
catch (AWTException e)
...{
System.err.println("无法创建托盘:"+e);
isCreated=false;
}
}
return isCreated;
}//end method
}//end class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值