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

Java-向JFrame添加组件

彭令秋
2023-03-14
问题内容

我已经看到了几种有神论的方法,它们似乎都起作用,但是我只是想知道一种方法是否比另一种更好。

例如,一个JFramemyFrame你可以这样做:

myFrame.add(new JButton("OK"));

您还可以执行以下操作:

Container c = myFrame.getContentPane();
c.add(new JButton("OK"));

这些“正确”之一吗?


问题答案:

来自类javadoc的文字副本 JFrame

JFrame类与Frame略有不兼容。像所有其他JFC /
Swing顶级容器一样,JFrame包含JRootPane作为其唯一的子级。根窗格提供的内容窗格通常应包含JFrame显示的所有非菜单组件。这与AWT框架情况不同。为方便起见,add和setLayout被覆盖,可以根据需要转发到contentPane。这意味着您可以编写:

   frame.add(child);

并将该子级添加到contentPane中。内容窗格将始终为非空。尝试将其设置为null将导致JFrame引发异常。默认的内容窗格将设置有BorderLayout管理器。有关添加,删除和设置JFrame的LayoutManager的详细信息,请参考RootPaneContainer。

所以两者都是等效的,而且都是正确的



 类似资料:
  • 我是刚到爪哇的。我想把我的cardlayout添加到JFrame中。我之所以要这样做,是因为我可以通过关闭jframe在单击exit按钮时退出框架(窗口)。下面的程序是对JFrame的扩展。但我想声明JFrame,并在上面添加卡片。我试过了,但没有成功。我还想把card1的Jpanel设置为500(宽),500(高),但全屏显示。

  • 问题内容: 我想在运行时按下按钮时向JFrame中添加一些新组件。到目前为止,该方法仍然有效,但是我必须手动调整窗口大小才能看到新组件。 有什么我可以触发的动作或可以调用的方法来刷新窗口吗?任何帮助表示赞赏。提前致谢。 问题答案: 你必须去框架。如果这样不起作用,您还必须致电

  • 问题内容: 我有一个,其中有一些选择。当按下“确定”按钮时,我希望它清除内容并添加新内容。我已经尝试过,但是弹出的问题是新的。我究竟做错了什么? 问题答案: 解决方案很简单:使用CardLayout并让此布局管理器为您完成所有繁重的工作。有关如何执行此操作的更多详细信息,请参见教程:如何使用CardLayout。 至于您的代码,请注意,实际上它在启动时实际上创建了两个JFrame,如果按下JBut

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

  • 问题内容: 我有一个 JFrame 。 我也有一个 Box 类,它扩展了 Component 。该box类具有一个 paint 方法,该方法可以创建一个填充的矩形。 当我将这些Box组件的多个添加到我的JFrame时,当我在JFrame上调用 重绘 时,仅显示最近添加的一个。 我看了一下布局管理器,但是我不确定那不是我想要的。我所希望的是能够在屏幕上的任何位置制作整个矩形的动画。 (我还尝试创建一

  • 问题内容: 我想在JDialog中添加诸如TextField,Button等组件。 问题答案: 1)首先创建一个Jpanel 2)将组件添加到该JPanel 3)创建JDialog 4)将JPanel添加到JDialog