【问题标题】:Java 5 - Bring Modal Dialog to Front on any clickJava 5 - 在任何点击时将模态对话框置于最前面
【发布时间】:2011-10-24 21:07:03
【问题描述】:

设置:Java 5 - 无法升级。

我有一个大型应用程序,其中包含许多模式对话框窗口。我听说隐藏的模式对话框会导致不知情的用户重新启动计算机。即使用户知道如何使用 ALT-TAB(至少在 MS Windows 中),这也是一种痛苦。据我了解,这在更高版本的 Java 中已部分修复,但不幸的是,这不是一个选项。

那么,如果单击正在运行的应用程序的任何部分,是否有任何方法可以强制显示模式对话框?我在想它可能与 MouseListeners、GlassPanes 或其他东西有关。但是,我还有很多其他的事情要做,所以我现在没有太多时间来解决这个问题。谁能指出我正确的方向?

非常感谢!

【问题讨论】:

  • 什么类型的 Modality, 1) setModal(true) 2) ModalityType(some from API) 但真正的帮助你必须发布sscce.org,因为(也许我错了)我不知道另一个焦点问题Java5 或 Java6
  • setModal(true)。 ModalityType 不在 Java5 中(仅 6 及更高版本)
  • 如果没有人知道我可以从哪里开始寻找解决方案,我明天会发布 SSCCE ......现在得跑去工作......
  • 对你被添加到Java6,那么这个方法不能解决你的问题,你试过了吗 - 发生了什么,当你动态添加/删除/更改setModal(true)时,将其设置为所需的JDialog,这将是最简单的方法
  • SSCCE - 创建带有两个 JDialogs 的 JFrame 来管理两个 JButtons

标签: java swing focus modal-dialog jdialog


【解决方案1】:

那么,如果单击正在运行的应用程序的任何部分,是否有任何方法可以强制显示模式对话框?

创建对话框时,您需要将父框架指定为对话框的所有者。然后,每当您单击框架时,也会显示任何子对话框。

【讨论】:

  • 不幸的是,对话框需要 Frame 或 Dialog 父级,在问题的上下文中,它不可用。该对话框由包含 JPanel 的类显示,该类被添加到 JTabbedPane,然后将其放入 JFrame...
  • 除非有办法找到 JComponent 的顶部框架,但我不知道有什么办法……
  • 参见:SwingUtilities.windowForComponent(...)。
猜你喜欢
  • 2015-01-25
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
相关资源
最近更新 更多