【问题标题】:How to turn off window manager urgency hints for a JFrame?如何关闭 JFrame 的窗口管理器紧急提示?
【发布时间】:2023-04-07 04:47:01
【问题描述】:

我有一个JFrame,基本上无非就是几个JProgressBars,用于需要几个小时才能完成的数据转换程序。我的问题是每次我更新进度条时都会激活窗口管理器紧急提示,这真的很烦人,整天盯着我的眼角。我仍然希望它在我的任务栏中能够快速检查它,因此将其更改为 JDialog 无济于事。如何关闭紧急提示?

如果有帮助,该程序实际上可以在 Windows 7、java 版本 1.7.0 上运行,尽管我在 Linux 机器上使用模拟数据进行了大量调试,因此跨平台解决方案是首选但不是关键。

【问题讨论】:

  • 具有讽刺意味的是,在我的上一个项目中,使用 pygtk,我花了一些精力尝试打开的紧急提示。
  • 依赖于平台的解决方案(即 Windows 操作系统)-superuser.com/questions/316879/…。你说的是这个吗?
  • 是的@mre,除了只为一个应用程序禁用。其他应用程序丢失通知会比这个应用程序的误报更糟糕。

标签: java swing


【解决方案1】:

也许没什么复杂的,标准

1) setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

2) 没有理由显示 JFrame,调用 setVisible(true) 见第 5 点。

3)System Tray Functionality in Java SE 6

4) 你必须将 JPopupMenu 添加到 TrayIcon

5) 如果发生了一些事件,那么

【讨论】:

  • 你是说把程序的图标放在系统托盘而不是任务栏中?
  • @Karl Bielefeldt,确定这是非常安静的模式,您是否曾经干扰过一些通知,例如从防病毒软件更新,但是如果您将 JFrame 作为 JDialog、JWindow 的父级传递,还有另一种方法, JOptionPane,然后它与(对于 endUser)和 TrayIcon#displayMessage 相同,只是您必须使用 Toolbar 的 HIEGHT(来自 Native OS 的工具栏)进行计算,因为解决方法会有点困难,但并非不可能...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2015-08-03
  • 2012-11-05
相关资源
最近更新 更多