【发布时间】:2012-06-14 09:32:26
【问题描述】:
我正在处理一个与我认为的这个错误有关的问题:DefaultDesktopManager does not handle InternalFrame state changes as expected.
我有以下场景:
我的应用程序包含一个JFrame,它可以有多个JInternalFrames。作为一个概览对话框,我有一个JInternalFrame,它被最大化并显示了一个数据表。用户可以打开表中实体的详细信息对话框。详细信息对话框也是JInternalFrame。
问题:由于概览对话框已最大化,因此详细对话框也已最大化(与预期不同)。
问题:关闭详细信息对话框时,概览对话框失去其最大化状态。如果用户单击此对话框中的任何点,它将返回最大化。这对用户来说非常丑陋和困惑。如果我在关闭之前“取消最大化”详细信息对话框,概览对话框也会失去其最大化状态并保持在此状态。
在我看来,JFrame 的所有JInternalFrames 只能保持一个全局状态。我不知道如何为此创建一个简单的解决方法。也许有人过去遇到过这个问题,可以指导我。
提供 SSCCE 有点难,也许这就够了,我正在通过这个来显示详细对话框:
DetailDialog detailDialog = new DetailDialog();
applicationFrame.getDesktopPane().add(detailDialog);
detailDialog.setVisible(true);
【问题讨论】:
标签: java swing jframe jinternalframe maximize