繁体   English   中英

Java中的JPanel vs JFrame

[英]JPanel vs JFrame in Java

我正在学习Java gui。 我学习创建窗口的方法是继承或扩展JFrame类,并且最好使用它,因为JFrame包含Window的所有属性。 现在,如果我想在此窗口中添加内容,我需要使用add()方法。 但今天我遇到了JPanel ,它也创建了一个窗口,我们可以通过jpanelObjec.add()添加内容。

这两种方法有什么区别? 它们是否有某种关联?

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

JFrame

JFrame扩展了ComponentContainer

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

JPanel

JPanel扩展了ComponentContainerJComponent

它是一个泛型类,用于将其他Component组合在一起。

  • 在使用LayoutManager时非常有用,例如GridLayout fi将组件添加到不同的JPanel ,然后将其添加到JFrame以创建gui。 它在Layout和可重用性方面更易于管理。

  • 它也适用于在Swing中绘制/绘制时,你会覆盖paintComponent(..) ,当然还有双缓冲的完整乐趣。

没有顶级容器(如JWindowWindowJFrame FrameApplet ),Swing GUI不可能存在,而它可能不存在JPanel

JFrame是窗口; 它里面可以有一个或多个JPanel实例。 JPanel 不是窗口。

你需要一个Swing教程:

http://docs.oracle.com/javase/tutorial/uiswing/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM