【发布时间】:2013-05-06 07:26:04
【问题描述】:
在创建 MDI Swing GUI 时,我有许多 JInternalFrames 添加到 JFrame 中的 JDesktopPane。我通过在构造函数中的 initComponents 方法之后添加 setVisible(false) 使这些内部框架不可见(因为 GUI 构建器自动设置这些框架在此方法中可见)。
在运行时,用户可以通过调用调用 setVisible(true) 和 setVisible(false) 的侦听器来选择打开和关闭 JInternalFrames,具体取决于帧的当前状态。我喜欢使用这种设计如何保持内部框架的先前位置和状态不变。然而,有些事情告诉我这一定是非常错误的,即使我还没有看到任何缺点。
所以,我的问题是:这是糟糕的设计吗?
【问题讨论】:
-
如果有的话,我认为最好记住 JInternalFrames 的位置。一个缺点是,如果用户调整了 JDesktopPane 的大小,JInternalFrame 可能完全不在视野范围内(即超出 JDesktopPane 的可见范围),因此您可能希望在使 JInternalFrame 可见时检查这一点。或者,您可以像 Windows 3.1 那样采用简单的方法,提供“平铺”和“级联”菜单功能。
标签: java swing mdi jinternalframe jdesktoppane