问题描述
将组件添加到框架时,将组件添加到content pane
框架的。内容窗格是一个JPanel。内容窗格的默认布局是BorderLayout。
将组件直接添加到框架时,实际上是在将组件添加到面板。因此,您具有面板的所有布局功能。因此,实际上,向框架添加组件或使用自己的面板作为框架的内容窗格没有区别。
您真正需要确定的是,是否确实出于任何原因需要访问内容窗格?请参阅Swing教程中有关使用顶级容器的部分,以获取更多信息。本教程对此主题进行了一些思考。
我不确定为什么您需要替换内容窗格的组件。如果您在该论坛上阅读过该帖子,则建议始终使用a CardLayout
来交换面板,因此您永远不会直接处理内容窗格。
解决方法
我对Java
GUI有一个一般性的问题。如果我有几个要添加到JFrame的组件,我应该将它们直接放在JFrame中,还是将它们添加到JPanel,然后将面板添加到框架中?如果最好先将组件添加到JPanel,为什么?我通常这样做,然后我理解我不知道为什么/如果这是更可选的然后直接添加到框架中。JFrame还具有布局管理器,因此可以将它们放置在正确的位置。