当前位置: 首页 > 知识库问答 >
问题:

Java中的JPanel与JFrame

邹京
2023-03-14

我正在学习Java GUI。我学习创建窗口的方法是继承或扩展jframe类,使用它是很好的,因为jframe包含窗口的所有属性。现在如果我想在这个窗口中添加一些东西,我需要使用add()方法。但是今天我遇到了JPanel,它也创建了一个windows,我们可以通过JPanelObjec.add()添加内容。

这两种方法有什么区别?他们有什么关系吗?

共有1个答案

陆信瑞
2023-03-14

不应不必要地扩展JFrame类(仅当您要向JFrame类添加额外功能时)

JFrame:

JFrame扩展了组件容器

它是一个顶级容器,用于表示窗口的最低要求。这包括边框、可调整大小(JFrame是否可调整大小?)、标题栏、控件(允许最小化/最大化?)以及各种事件的事件处理程序,如WindowCloseWindowOpened等。

JPanel:

JPanel扩展了ComponentContainerJComponent

它是一个通用类,用于将其他组件组合在一起。

>

  • 当使用LayoutManager时,它很有用,例如GridLayoutf.i将组件添加到不同的JPanel中,然后这些组件将添加到JFrame中以创建GUI。在布局和可重用性方面,它将更易于管理。

    当在Swing中绘制/绘图时,它也很有用,您可以重写PaintComponent(..),当然还可以享受双缓冲的乐趣。

    Swing GUI如果没有顶级容器(如JWindowWindowJFrameFrameApplet)则无法存在,而如果没有JPanel,Swing GUI则可能存在。

  •  类似资料:
    • 我正在学习Java GUI。我学习创建窗口的方法是继承或扩展类,使用它是很好的,因为包含窗口的所有属性。现在如果我想在这个窗口中添加一些东西,我需要使用方法。但是今天我遇到了,它也创建了一个windows,我们可以通过添加内容。 这两种方法有什么区别?他们有什么关系吗?

    • 我想在我的基本框架中添加一个带有JPanel的JScrollpane 如果我将带有的直接添加到中,就可以了。但是现在,当我将帧的大小减小到500像素以下时,变得更小,如第二张图片所示。 如何使JScrollPane工作?

    • 问题内容: 我有一个JFrame,在这个JFrame中,我有一个绘制的JPanel,此Panel可以是任何大小,因此我将其放在JScrollpane中,以便当面板大于窗口屏幕大小时可以滚动。 不幸的是,它没有按我预期的那样工作: 使JFrame窗口小于JPanel大小不会显示滚动条 现在,JScrollPane的大小似乎已锁定为我添加到其中的JPanel的大小,就像以前一样,它的大小已调整为JFr

    • 我使用子JPanel构造JScrollPane,然后尝试将JScrollPane添加到父JPanel中,希望有一个可滚动的自定义JPanel。 我有一个大的细白线前面的所有我的组件,他们是没有滚动。有什么想法吗?

    • 问题内容: 我的Java swing应用程序有一个格式问题。它应该很简单,但是我很难找到任何帮助(每个主题似乎都与 删除 JPanel中的默认填充有关)。我的各个JPanels中的文本都拥抱侧面和顶部,触及彩色边框:如何添加填充?谢谢。 问题答案: 在周围设置一个。 例:

    • 主要内容:1 Java JPanel的介绍,2 Java JPanel的声明,3 Java JPanel的构造方法,4 Java JPanel的案例1 Java JPanel的介绍 JPanel是最简单的容器类。它提供了一个空间,应用程序可以在其中附加任何其他组件。它继承了JComponents类。 它没有标题栏。 2 Java JPanel的声明 3 Java JPanel的构造方法 方法 描述 JPanel() 用于创建具有双缓冲区和流布局的新JPanel。 JPanel(boolean i