gpt4 book ai didi

java - 单击托盘图标时显示 JFrame,即使最小化也是如此

转载 作者:行者123 更新时间:2023-12-02 04:54:20 25 4
gpt4 key购买 nike

我需要在单击托盘图标时恢复隐藏窗口。我实际上已经找到了部分解决方案:

tray_icon.addMouseListener(new MouseListener() {
@Override
public void mouseClicked( MouseEvent e ) {
//Gui.this refers to my frame
Gui.this.setVisible(true);
}
});

如果框架位于另一个窗口后面,这将显示该框架。它将把框架放在上面。但如果我最小化框架,它不会显示窗口。然而有趣的是,它稍微突出了任务栏选项卡:

image description

任务栏闪烁很好,但这还不够:

  • 我想要显示 JFrame,无论其隐藏方式如何

请注意,我计划允许“最小化到托盘”功能。这意味着我什至将完全隐藏窗口(如果 Java 允许的话)。它仍然必须能够显示它。

最佳答案

除了setVisible之外,还有其他东西需要设置:

Gui.this.setState(Frame.NORMAL);

最小化时,框架的状态为 Frame.ICONIFIED。

这是恢复隐藏帧的完整回调:

   tray_icon.addMouseListener(new MouseListener() {
@Override
public void mouseClicked( MouseEvent e ) {
Gui.this.setVisible(true);
Gui.this.setState (Frame.NORMAL);
}
}

这就是我用来隐藏窗口和任务栏面板(最小化到托盘)的方法:

 this.addWindowListener(new WindowAdapter()
{
@Override
public void windowIconified(WindowEvent event) {
//Hides it from screen
Gui.this.setState(Frame.ICONIFIED);
//Hides it from taskbar and screen
Gui.this.setVisible(false);
}
});

关于java - 单击托盘图标时显示 JFrame,即使最小化也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28920423/

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