Java 未保留JInternalFrame的状态
我正在处理一个与此bug相关的问题,我认为: 我有以下情况: 我的应用程序由一个Java 未保留JInternalFrame的状态,java,swing,jframe,jinternalframe,maximize,Java,Swing,Jframe,Jinternalframe,Maximize,我正在处理一个与此bug相关的问题,我认为: 我有以下情况: 我的应用程序由一个JFrame组成,它可以有几个JInternalFrames。作为一个概览对话框,我有一个JInternalFrame,它被最大化并显示一个数据表。用户可以打开表中实体的详细信息对话框。详细信息对话框也是一个JInternalFrame 问题:由于“概述”对话框被最大化,因此“详细信息”对话框也被最大化(与预期不一样) 问题:关闭“详细信息”对话框时,“概述”对话框将失去其最大化状态。如果用户单击此对话框中的任何点,
JFrame
组成,它可以有几个JInternalFrame
s。作为一个概览对话框,我有一个JInternalFrame
,它被最大化并显示一个数据表。用户可以打开表中实体的详细信息对话框。详细信息对话框也是一个JInternalFrame
JFrame
只能为其所有JInternalFrame
保存一个全局状态。我不知道如何为此创建一个简单的解决方案。也许有人在过去遇到过这样的麻烦,可以指导我
提供SSCCE有点困难,也许这就足够了,我通过以下方式显示详细信息对话框:
DetailDialog detailDialog = new DetailDialog();
applicationFrame.getDesktopPane().add(detailDialog);
detailDialog.setVisible(true);
可能是问题
我发现了我的错误。我正在为对话框使用一个控制器类,并将对话框的关闭委托给该类。例如,在控制器中,我必须进行一些验证,然后调用对话框的
dispose()
。现在我调用的是setClosed(true)
,它可以正常工作。我认为有一些触发事件丢失,现在被触发。我添加了一些代码,SSCCE可能有点太多了。。。我不用2。三,。所以我不期望这里有什么(我应该做什么?)。4.我没有使用LayeredPane
如果这个类可以帮助我的话,我会看看它。从JInternalFrame[]getAllFrames()可以得到所有JInternalFrame和内部框架侦听器,它们讨论所有实现的事件,其中的一部分(正如我尝试的,可能是全部)你可以提供PropertyChangeListener我知道他们在做什么,但我希望有人有一个想法阻止我实现Swing应该做的事情。