我的应用程序有一个JFrame,如果发生了变化,每隔x
秒检查一次。因此,我希望通过点击关闭按钮隐藏我的JFrame,并在停靠栏中的图标时重新显示它(我使用的是Mac OS,但它应该与Windows任务栏的工作方式相同)点击。您知道:许多应用程序都会临时隐藏。
您有任何想法如何做到这一点?如何收听这些点击事件?
答案 0 :(得分:2)
这是一个小样本,如何在托盘中隐藏/打开窗口。
import java.awt.Image;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) throws Exception {
final JFrame frm = new JFrame("Test");
Image im = Toolkit.getDefaultToolkit().getImage("c:\\icons\\icon1.png");
final TrayIcon tri = new TrayIcon(im);
tri.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frm.setVisible(true);
try {
SystemTray.getSystemTray().remove(tri);
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
frm.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
try {
SystemTray.getSystemTray().add(tri);
} catch (Exception ex) {
ex.printStackTrace();
}
frm.setVisible(false);
}
});
frm.setSize(100, 100);
frm.setVisible(true);
}
}