gpt4 book ai didi

java - 隐藏 JFrame 并通过单击停靠图标再次显示它

转载 作者:行者123 更新时间:2023-11-30 04:31:34 27 4
gpt4 key购买 nike

我的应用程序有一个 JFrame,并且每 x 秒检查一次是否有更改。因此,我想通过单击关闭按钮时的 setVisible(false) 隐藏我的 JFrame,并在图标出现在扩展坞中时重新显示它(我使用的是 Mac OS,但它应该工作相同)单击 Windows 任务栏的方式)。您知道:许多应用程序都会进行这种临时隐藏。

您有任何想法如何做到这一点吗?如何监听这些点击事件?

最佳答案

这是一个小示例,说明如何隐藏/打开托盘中的窗口。

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);
}
}

关于java - 隐藏 JFrame 并通过单击停靠图标再次显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14536445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com