【发布时间】:2015-03-18 13:37:45
【问题描述】:
我目前已经构建了一个使用多个框架的应用程序。 但是,如果我可以在 1 帧中使用我全部使用的帧,那就太好了。 如下图所示。
因此,如果您按下左侧按钮“Speler Overzicht”,它将在右侧面板中显示用户,而左侧面板中仍然有我的按钮。
【问题讨论】:
-
你发布的图片只有1个
JFrame,可能包含多个JPanel实例
我目前已经构建了一个使用多个框架的应用程序。 但是,如果我可以在 1 帧中使用我全部使用的帧,那就太好了。 如下图所示。
因此,如果您按下左侧按钮“Speler Overzicht”,它将在右侧面板中显示用户,而左侧面板中仍然有我的按钮。
【问题讨论】:
JFrame,可能包含多个JPanel实例
一般来说,将 UI 类基于 JFrame 是一个非常糟糕的主意,因为它会将您锁定在单个用例中,这意味着您无法将 UI 组件(框架)添加到其他容器中。
我更好的解决方案是将您的 UI 组件基于JPanels,然后您可以将它们添加到您需要它们的任何位置。扩展它们也使生活更容易,但这是另一回事。
要允许用户在多个视图之间移动,您可以根据需要使用CardLayout 或JTabbedPane
请参阅How to Use CardLayout 和How to Use Tabbed Panes 了解更多详情
【讨论】:
改用 JPanel。
buttonPanel=new JPanel();
overzichtPanel=new JPanel();
buttonPanel.add(button);// do this for every button
overzichtPanel.add(componentsYouWantToAdd);// replace with your variables of course
frame.add(buttonPanel, BorderLayout.WEST)
frame.add(overzichtPanel, BorderLayout.CENTER)
【讨论】:
您不能将一个 JFrame 放在另一个 JFrame 中。您在这里有一些设计选择。您可以将 JFrames 更改为 JPanels。这可能是最简单的改变。另一方面,您可以考虑改用Internal Frames。
【讨论】: