Java中窗口最小化到系统托盘

来源:互联网 发布:php网站上传到服务器 编辑:程序博客网 时间:2024/06/06 07:28
下面是代码
// 窗口最小化到任务栏托盘
public void miniTray() {
ImageIcon trayImg = new ImageIcon("image/biaoti.gif");// 托盘图标

PopupMenu pop = new PopupMenu(); // 增加托盘右击菜单
MenuItem show = new MenuItem("还原");
show.setFont(font2);
MenuItem exit = new MenuItem("退出");
exit.setFont(font2);

show.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { // 按下还原键
tray.remove(trayIcon);
frame.setVisible(true);
frame.setExtendedState(JFrame.NORMAL);
frame.toFront();
}

});

exit.addActionListener(new ActionListener() { // 按下退出键
public void actionPerformed(ActionEvent e) {
tray.remove(trayIcon);
System.exit(0);
}

});
pop.add(show);
pop.add(exit);
trayIcon = new TrayIcon(trayImg.getImage(), "网上图书借还管理系统", pop);
trayIcon.setImageAutoSize(true);
trayIcon.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) { // 鼠标器双击事件
if (e.getClickCount() == 2) {
tray.remove(trayIcon); // 移去托盘图标
frame.setVisible(true);
frame.setExtendedState(JFrame.NORMAL); // 还原窗口
frame.toFront();
}
}
});
try {
tray.add(trayIcon);
} catch (AWTException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
全局声明变量: static SystemTray tray = SystemTray.getSystemTray();
然后重写最小化监听
例如: public void show(int x, int y) {
frame.getContentPane().setFont(new Font("楷体", Font.PLAIN, 12));
frame.setTitle("管理员端");
frame.setBounds(x, y, 988, 640);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setResizable(false);//设置不能改变大小,
frame.addWindowListener(new WindowAdapter() { // 窗口关闭事件
public void windowClosing(WindowEvent e) {
System.exit(0);
};
public void windowIconified(WindowEvent e) { // 窗口最小化事件
frame.setVisible(false);
miniTray();
}
});
}
0 0
原创粉丝点击