首先今天我们想来做一个关于java桌面级应用程序的系统托盘设计教程。
完整代码:
Image image = Toolkit.getDefaultToolkit().getImage("\\zbosszLOGO.jpg");
if(SystemTray.isSupported()){
//获取当前平台的系统托盘
SystemTray tray = SystemTray.getSystemTray();
//加载一个图片当作托盘图标
PopupMenu popupMenu = new PopupMenu();
MenuItem openItem = new MenuItem("打开");
MenuItem exitItem = new MenuItem("退出");
openItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(!LoginFrame.this.isShowing()){
LoginFrame.this.setVisible(true);
LoginFrame.this.setExtendedState(NORMAL);//这个窗口显示到面板
}
}
});
exitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
popupMenu.add(openItem);
popupMenu.add(exitItem);
//创建系统托盘
TrayIcon trayIcon = new TrayIcon(image,"GraduateSchoolInquirySystem",popupMenu);
//托盘图标自适应尺寸
trayIcon.setImageAutoSize(true);
LoginFrame.this.addWindowListener(new WindowAdapter() {
@Override
//这个是窗口最小化事件
public void windowIconified(WindowEvent e) {
try {
tray.add(trayIcon);
} catch (AWTException ex) {
throw new RuntimeException(ex);
}
loginFrame.setVisible(false);
}
});
trayIcon.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON1) {
//button3是右键,button1是左键
super.mouseClicked(e);
int clickedtimes = e.getClickCount();
if (clickedtimes == 1) {
LoginFrame.this.setVisible(true);
LoginFrame.this.setExtendedState(NORMAL);//这个窗口显示到面板
}
tray.remove(trayIcon);
}
}
});
}