当前位置: 首页 > 面试题库 >

将组件直接添加到JFrame,还是将它们放在JPanel中?

凌声
2023-03-14
问题内容

我对Java
GUI有一个一般性的问题。如果我有几个要添加到JFrame的组件,我应该将它们直接放在JFrame中,还是将它们添加到JPanel,然后将面板添加到框架中?如果最好先将组件添加到JPanel,为什么?我通常这样做,然后我理解我不知道为什么/如果这是更可选的然后直接添加到框架中。JFrame还具有布局管理器,因此可以将它们放置在正确的位置。


问题答案:

组件添加到框架时,将组件添加到content pane框架的。内容窗格是一个JPanel。内容窗格的默认布局是BorderLayout。

将组件直接添加到框架时,实际上是在将组件添加到面板。因此,您具有面板的所有布局功能。因此,实际上,向框架添加组件或使用自己的面板作为框架的内容窗格没有区别。

您真正需要确定的是,是否确实出于任何原因需要访问内容窗格?请参阅Swing教程中有关使用顶级容器的部分,以获取更多信息。本教程对此主题进行了一些思考。

我不确定为什么您需要替换内容窗格的组件。如果您在该论坛上阅读过该帖子,则建议始终使用a CardLayout来交换面板,因此您永远不会直接处理内容窗格。



 类似资料:
  • 我正在尝试将此 JPanel 添加到 JFrame 中,但我看不到他。当我创建新的 java 类并自己制作这个框架时,一切都很好。 来自JFrame表单的代码。 来自 JPanel 的代码: 来自Java类的代码。 我想不出区别在哪里。有人能帮我吗?

  • 我一直在使用JFrame进行我的项目,但遇到了一个问题。这是我的代码: 还有,这是我的主要。java: 我想做的是向面板添加文本字段和标签。但是,当我运行此代码时,它会显示:结果 如果我在框架中添加标签和文本字段,效果很好。你能帮我解决这个问题吗?非常感谢你。

  • 我正在创建一个TicTacToe游戏。我把所有带有ActionListeners的后端放在按钮上,将按钮添加到面板,设置框架等等。 然而,当我运行程序时,我的JPanel似乎没有添加到JFrame中。我试过使用不同的布局,仔细检查是否确实放置了。为所有内容添加行,之前的所有帖子似乎都指向了我认为已经涵盖的内容。 如果这真的很直接,我提前道歉。 谢谢你的帮助。

  • 问题内容: 我有一个和上。 在运行时添加到单击时。 我使用以下代码: 但没有显示任何在。 问题答案: 我看到您创建了一个名为: 但您永远不会将其添加到面板中。相反,您将没有文本的新内容添加到面板中: 当然,这将构造一个不可见的空标签。 添加类似后,还尝试在您的实例上调用和,如下所示: 这样,您可能还需要调用您的框架实例,以便调整大小以适合新组件。 另外,请不要使用/ 布局,这是非常糟糕的做法(除非

  • 我知道有多种方法可以将滚动添加到 ,然后将面板添加到 。 但是当我试图不使用面板而直接将< code>JScrollPane添加到框架中时,出现了一个错误: 所以在我的代码中,我需要将滚动直接添加到我的框架中。

  • 问题内容: 我有两节课 我的主要班级创建了一个框架,我希望另一个班级为其添加内容。一读arroudn告诉我,我应该使用组件来执行此操作,但是当我运行代码时,框架为空。 我的Component类创建一个JLabel 我没有任何编译错误,但是我的JFrame中没有任何文本。 谁能解释我在做什么错? 克里斯 问题答案: 您需要 添加 的。最好扩展而不是扩展,因为它具有默认的布局管理器,并且无需设置组件大