Java6学习笔记49——制作程序到系统托盘

本文提供了一个使用Java实现系统托盘图标的示例程序,包括如何创建托盘图标、添加弹出菜单以及处理显示、隐藏和退出操作。

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

import java.awt.SystemTray;
import java.awt.TrayIcon;
import java.awt.AWTException;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.PopupMenu;
import java.awt.MenuItem;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class TrayDemo extends JFrame implements ActionListener {
public static void main(String arg[]) {
new TrayDemo();
}
public TrayDemo() {
super("TrayDemo");//调用父类的构造方法
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
} );
buildFrame();

if(!SystemTray.isSupported()) {//判断是否支持
System.out.println("The system tray is not available.");
return;
}
SystemTray tray = SystemTray.getSystemTray();//得到SystemTray对象
Image image = Toolkit.getDefaultToolkit().getImage("bulb.gif");//加载Icon文件
PopupMenu popup = buildMenu();//添加弹出式菜单
TrayIcon trayicon = new TrayIcon(image,"Tray demo program",popup);
trayicon.setImageAutoSize(true);//自动调整大小
try {
tray.add(trayicon);//添加icon
} catch(AWTException e) {
System.out.println("Cannot add tray icon");
}

setLocation(250,150);
setVisible(true);
}
private void buildFrame() {
JButton exitButton = new JButton("Exit");
exitButton.addActionListener(this);
add(exitButton);
setSize(300,200);
}
private PopupMenu buildMenu() {
PopupMenu popup = new PopupMenu();
popup.add(new MenuItem("About"));
popup.addSeparator();
MenuItem hideItem = new MenuItem("Hide");
hideItem.addActionListener(this);
popup.add(hideItem);
MenuItem showItem = new MenuItem("Show");
showItem.addActionListener(this);
popup.add(showItem);
MenuItem exitItem = new MenuItem("Exit");
exitItem.addActionListener(this);
popup.add(exitItem);
return(popup);
}
public void actionPerformed(ActionEvent e) {
String selection = e.getActionCommand();
if(selection.equals("Exit")) {
System.exit(0);
} else if(selection.equals("Hide")) {
setVisible(false);
} else if(selection.equals("Show")) {
setVisible(true);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值