import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
/**
*使java application生成托盘图标的例子
*本代码在JDK1.6上,Win2003平台上测试通过
*@author:NetJava.org
*/
public class CreateTray
{
/**创建单实列*/
public static CreateTray instance(){
if(null==ct){
ct=new CreateTray();
}
return ct;
}
//测试
public static void main(String[] args)
{
CreateTray ct =instance();
//工作目录下使用的tray图标文件
String iconFileName="netjava.gif";
PopupMenu pop=ct.createPopup();
if(!ct.CreteTrayIcon(iconFileName,"我的托盘",pop)){
System.out.println("不能创建托盘");
}
}
/**
*创建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;
if (SystemTray.isSupported()) {
SystemTray tray = SystemTray.getSystemTray();
Image image = Toolkit.getDefaultToolkit().getImage(trayImage);
trayIcon = new TrayIcon(image, trayName, popup);
trayIcon.setImageAutoSize(true);
//创建一个Action监听器:左键双击事件
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;
}
/**
*创建这个tray上的右键弹出式菜单
*/
public PopupMenu createPopup(){
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);
return popup;
}
private CreateTray(){};
private static CreateTray ct=null;
}
JAVA6新特性之---java桌面应用中生成托盘(tray)图标的简单方法
最新推荐文章于 2022-05-27 18:11:58 发布