JPanel与Java中的JFrame
我正在学习JavaGUI。我学习创建窗口的方法是继承或扩展JPanel与Java中的JFrame,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我正在学习JavaGUI。我学习创建窗口的方法是继承或扩展JFrame类,使用它很好,因为JFrame包含窗口的所有属性。现在,如果我想向这个窗口添加一些内容,我需要使用add()方法。但是今天我遇到了JPanel,它也创建了一个窗口,我们可以通过jpanelObjec.add()添加东西 这两种方法有什么区别?它们是否有某种关联?JFrame是窗口;它可以有一个或多个JPanel实例JPanel不是窗口 您需要一个Swing教程: 您不应该不必要地扩展JFrame类(仅当您向JFrame类添加
JFrame
类,使用它很好,因为JFrame
包含窗口的所有属性。现在,如果我想向这个窗口添加一些内容,我需要使用add()
方法。但是今天我遇到了JPanel
,它也创建了一个窗口,我们可以通过jpanelObjec.add()
添加东西
这两种方法有什么区别?它们是否有某种关联?
JFrame
是窗口;它可以有一个或多个JPanel
实例JPanel
不是窗口
您需要一个Swing教程:
您不应该不必要地扩展
JFrame
类(仅当您向JFrame
类添加额外功能时)
JFrame:
JFrame
扩展组件
和容器
它是一个顶级容器,用于表示窗口的最低要求。这包括边框
s、可调整大小(JFrame是否可调整大小?)、标题栏、控件(允许最小化/最大化?)以及各种事件
的事件处理程序,如窗口关闭
、窗口打开
等
JPanel:
JPanel
扩展了Component
、Container
和JComponent
它是一个泛型类,用于将其他组件
组合在一起
- 当使用
s时,它很有用,例如LayoutManager
f.i将组件添加到不同的GridLayout
s,然后将组件添加到JPanel
以创建gui。在布局和可重用性方面,它将更易于管理JFrame
- 当在Swing中绘制/绘制时,它也很有用,您可以覆盖
,当然还可以享受双缓冲的全部乐趣paintComponent(..)
JWindow
、Window
、JFrame
Frame或Applet
)就无法存在,而可能没有JPanel
s。类似的问题:实际上,它没有扩展JComponent
和JContainer
。