Java Swing开发,将程序最小化至系统托盘
下面的函数是最小化至托盘的按钮的点击响应函数。
private void minimizeButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (SystemTray.isSupported()) // 判断系统是否支持系统托盘
{
SystemTray sysTray = SystemTray.getSystemTray(); // 获得系统托盘
Image image = null;
try {
image = ImageIO.read(MainFrame.class.getResource("/res/icon.jpg")); // 载入图片,这里要写你的图标路径哦
} catch (IOException e) {}
// 创建弹出菜单
PopupMenu popupMenu = new PopupMenu();
MenuItem mainFrameItem = new MenuItem("主界面");
ActionListener openMainFrameListener = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ae)
{
MainFrame.this.setVisible(true);
}
};
mainFrameItem.addActionListener(openMainFrameListener);
MenuItem exitItem = new MenuItem("退出程序");
exitItem.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if (JOptionPane.showConfirmDialog(null, "确定退出系统?","询问",JOptionPane.YES_NO_OPTION) ==JOptionPane.YES_OPTION )
{
System.exit(0);
}
}
});
popupMenu.add(mainFrameItem);
popupMenu.add(exitItem);
TrayIcon trayIcon = new TrayIcon(image, "seara", popupMenu);// 创建trayIcon
trayIcon.addActionListener(openMainFrameListener);
try
{
sysTray.add(trayIcon);
} catch (Exception e) {}
MainFrame.this.setVisible(false);
}
else
{
JOptionPane.showMessageDialog(MainFrame.this,"本系统不支持最小化至系统托盘!","通知",JOptionPane.OK_OPTION);
}
}