[英]JPanel vs JFrame in Java
我正在学习Java gui。 我学习创建窗口的方法是继承或扩展JFrame
类,并且最好使用它,因为JFrame
包含Window的所有属性。 现在,如果我想在此窗口中添加内容,我需要使用add()
方法。 但今天我遇到了JPanel
,它也创建了一个窗口,我们可以通过jpanelObjec.add()
添加内容。
这两种方法有什么区别? 它们是否有某种关联?
您不应该不必要地扩展JFrame
类(仅当您向JFrame
类添加额外的功能时)
JFrame :
JFrame
扩展了Component
和Container
。
它是一个顶级容器,用于表示窗口的最低要求。 这包括Border
s,可恢复性( JFrame
可调整大小?),标题栏,控件(最小化/最大化允许?),以及各种Event
的事件处理程序,如windowClose
, windowOpened
等。
JPanel :
JPanel
扩展了Component
, Container
和JComponent
它是一个泛型类,用于将其他Component
组合在一起。
在使用LayoutManager
时非常有用,例如GridLayout
fi将组件添加到不同的JPanel
,然后将其添加到JFrame
以创建gui。 它在Layout
和可重用性方面更易于管理。
它也适用于在Swing中绘制/绘制时,你会覆盖paintComponent(..)
,当然还有双缓冲的完整乐趣。
没有顶级容器(如JWindow
, Window
, JFrame
Frame
或Applet
),Swing GUI不可能存在,而它可能不存在JPanel
。
JFrame
是窗口; 它里面可以有一个或多个JPanel
实例。 JPanel
不是窗口。
你需要一个Swing教程:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.