【发布时间】:2020-06-30 14:20:49
【问题描述】:
我正在开发一个带有主窗口(扩展JFrame)的摇摆应用程序,可以从中打开几个子窗口(目前超过 1 个)。
这些窗口都是非模态的并且可以调整大小。
到目前为止,我将这些“子”窗口实现为JFrame。但是,对于每个打开的窗口,我的 Windows 任务栏上都会出现一个新图标。
因此,我尝试将这些窗口实现为 JDialog,类型为 ModalityType.MODELESS。
看起来不错,只是 JDialog 没有最小化按钮。
有没有办法解决这个问题?
即,我需要创建可以最小化的非模态和可调整大小的子窗口。JInternalFrame 不是一个选项,因为主框架不仅仅是一个带有JDesktopPane 的容器,子窗口应该能够交叉主窗口的边框。
对于那些感兴趣的人:
子窗口在打开/关闭时在主窗口上注册和取消注册。
主窗口有一个带有“Windows”项目的菜单,并且在注册/注销时从该菜单中添加/删除子窗口。
用户可以通过在此菜单中选择一个项目在各个窗口之间切换。
【问题讨论】:
-
最小化后会去哪里?或者,为什么不直接使用关闭按钮?
-
当最小化它应该被简单地隐藏。重新激活时(通过选择主窗口中的相应菜单项),应显示原始内容。子窗口可能很大,可能完全覆盖主窗口。这就是为什么我需要它们最小化。
-
好的,我知道您需要将它们最小化,但您的最小化听起来与关闭它们相同。那么为什么不直接使用关闭按钮呢?
-
关闭子窗口时,其内容(可能已被用户编辑)丢失。我不想要那个。而且我不想仅仅因为他想在另一个窗口中查看,就强迫用户保存或重新开始。
-
只是在关闭的时候不丢失窗口的内容?当他们单击关闭时,隐藏窗口,仅此而已。另外,您可能想检查一下。 stackoverflow.com/questions/2054347/…