最小化到托盘
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.io.InputStream;
public class TrayIconFrame extends JFrame {
public TrayIconFrame(String title) {
super(title);
addTray();
}
private void addTray() {
String fileName = "0.gif";
InputStream is = getClass().getClassLoader().getResourceAsStream(fileName);
if (is == null) {
System.out.println("找不到图标文件 => " + fileName);
return;
}
//获得系统托盘的实例
try {
SystemTray systemTray = SystemTray.getSystemTray();
TrayIcon trayIcon = new TrayIcon(ImageIO.read(is));
systemTray.add(trayIcon);
this.addWindowListener(new WindowAdapter() {
public void windowIconified(WindowEvent e) {
// 最小化是隐藏窗口
dispose();
}
});
trayIcon.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
// 双击托盘窗口再现
setExtendedState(Frame.NORMAL);
}
setVisible(true);
}
});
} catch (IOException | AWTException e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
TrayIconFrame frame = new TrayIconFrame("托盘测试");
frame.setPreferredSize(new Dimension(600, 480));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
