首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示JFrame时,托盘图标被点击,即使最小化

显示JFrame时,托盘图标被点击,即使最小化
EN

Stack Overflow用户
提问于 2015-03-07 21:52:16
回答 1查看 2K关注 0票数 0

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

代码语言:javascript
复制
tray_icon.addMouseListener(new MouseListener() {
  @Override
  public void mouseClicked( MouseEvent e ) {
    //Gui.this refers to my frame
    Gui.this.setVisible(true);
  }
});

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

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

  • 我想要显示JFrame,不管它是如何隐藏的

请注意,我计划允许“最小化到托盘”功能。这意味着我甚至会完全隐藏窗口(如果Java允许的话)。仍然有可能证明这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-07 22:17:23

除了setVisible之外,还有其他需要设置的内容:

代码语言:javascript
复制
Gui.this.setState(Frame.NORMAL);

当最小化时,帧的状态是Frame.ICONIFIED。

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

代码语言:javascript
复制
   tray_icon.addMouseListener(new MouseListener() {
     @Override
     public void mouseClicked( MouseEvent e ) {
       Gui.this.setVisible(true);
       Gui.this.setState (Frame.NORMAL);
     }
   }

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

代码语言:javascript
复制
 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);
    }
 });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28920423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档