使用2个或更多帧

时间:2011-10-25 13:22:17

标签: java swing jframe

我的java swing应用程序中有大约3个帧。如何处理这些框架的正确方法是什么?我的意思是一些模式或其他东西。现在我总是有一个表示框架的类和一个用于面板的类,它是该框架中的主要部分。现在我已将帧定义为静态变量,当我想隐藏它们时,我会调用它 classname.frameName.setVisible(false);

这是正确的解决方案吗?

4 个答案:

答案 0 :(得分:9)

除了CardLayoutJFrame多个JDialog个实例的(优秀)建议之外,还有一些其他策略可能单独或组合使用,以折叠各种内容窗格分成一个框架。

  1. JDesktopPane / JInternalFamesTut.)。
  2. JSplitPaneTut.)。
  3. JTabbedPaneTut.)。
  4. JLayeredPane,如果你有勇气(Tut.)。
  5. JToolBar - 如果需要可浮动(Tut.)。
  6. nested layoutJPanel的不同约束。
  7. 可能还有更多..


    当然,正如亚当斯基指出的那样,还有一些需要考虑的问题......

      

    如果每个框架都有JMenuBars或JMenus怎么办?

    可能将它们组合为子菜单。

答案 1 :(得分:5)

看一下像MyDoggy这样的体面对接框架。这允许您在单个JFrame中显示所有三个组件,但非常灵活,您可以并排查看数据,调整大小和最大化组件。

答案 2 :(得分:4)

这种设计似乎有缺陷。您应该使用适当的布局管理器,而不是拥有多个容器。在这种情况下,我建议使用CardLayout。这样,您就拥有了一个 单个容器,其中包含多个可交换视图

答案 3 :(得分:2)

通过静态引用控制帧似乎是一个非常脆弱的解决方案。如果引用为空怎么办?如果在调用setVisible()时帧未处于完成状态会怎样?

将这个逻辑分离成一个单独的类并且让帧自己注册到它或者预先构建所有内容可能是一个更好的主意。