Java 中的 JPanel vs JFrame
我正在学习Java gui。我学习创建窗口的方法是继承或扩展类,使用它很好,因为它包含窗口的所有属性。现在,如果我想向此窗口添加一些内容,我需要使用方法。但是今天我遇到了它也创建了一个窗口,我们可以通过以下方式添加内容。JFrameJFrameadd()JPaneljpanelObjec.add()
这两种方法有什么区别?它们是否以某种方式相关?
我正在学习Java gui。我学习创建窗口的方法是继承或扩展类,使用它很好,因为它包含窗口的所有属性。现在,如果我想向此窗口添加一些内容,我需要使用方法。但是今天我遇到了它也创建了一个窗口,我们可以通过以下方式添加内容。JFrameJFrameadd()JPaneljpanelObjec.add()
这两种方法有什么区别?它们是否以某种方式相关?
不应不必要地扩展类(仅当向类添加额外功能时)JFrameJFrame
JFrame:
JFrame扩展 和 。ComponentContainer
它是一个顶级容器,用于表示窗口的最低要求。这包括 s、可调整大小(是否可调整大小?)、标题栏、控件(允许最小化/最大化?)以及各种事件处理程序(如 等)。BorderJFrameEventwindowClosewindowOpened
JPanel:
JPanel扩展 , 和ComponentContainerJComponent
它是一个泛型类,用于将其他 s 组合在一起。Component
当使用时,它很有用,例如 f.i 将组件添加到不同的 s,然后将其添加到 中创建 gui。在可重用性和可重用性方面,它将更易于管理。LayoutManagerGridLayoutJPanelJFrameLayout
它也很有用,当在Swing中绘画/绘画时,您将覆盖并且当然具有双重缓冲的全部乐趣。paintComponent(..)
Swing GUI 在没有顶级容器(如 (、 、 或 ))的情况下不能存在,而在没有 s 的情况下,它可能存在。JWindowWindowJFrameFrameAppletJPanel
JFrame是窗口;它可以有一个或多个实例。 不是窗口。JPanelJPanel
你需要一个Swing教程: