我正在学习Java gui。我学会创建一个窗口的方式是继承或扩展JFrame
类,并且它很好用,因为JFrame
包含窗口的所有属性。现在,如果我想添加一些东西到这个窗口,我需要使用add()
方法。但是今天我遇到了JPanel
这也创建了一个窗口,我们可以通过jpanelObjec.add()
添加东西。JPanel vs Java中的JFrame
这两种方法有什么区别?他们有某种相关性吗?
我正在学习Java gui。我学会创建一个窗口的方式是继承或扩展JFrame
类,并且它很好用,因为JFrame
包含窗口的所有属性。现在,如果我想添加一些东西到这个窗口,我需要使用add()
方法。但是今天我遇到了JPanel
这也创建了一个窗口,我们可以通过jpanelObjec.add()
添加东西。JPanel vs Java中的JFrame
这两种方法有什么区别?他们有某种相关性吗?
你不应该不必要地延长JFrame
类(仅当您添加额外的功能到JFrame
类)
的JFrame:
JFrame
延伸Component
和Container
。
它是一个顶级容器,用于表示窗口的最低要求。这包括Border
S,可调整大小(是JFrame
可调整大小?),标题栏,控制和事件处理程序的各种Event
就像windowClose
,windowOpened
等
的JPanel(最小化/最大化允许?):
JPanel
延伸Component
,Container
和JComponent
它是用来将一个通用类其他Component
š在一起。
当与LayoutManager
一起工作时, GridLayout
f.i将组件添加到不同的JPanel
,然后将其添加到JFrame
以创建gui。根据Layout
和可重用性,它将更易于管理。
这对于在Swing中绘画/绘画时也很有用,您可以覆盖paintComponent(..)
,当然还可以享受双倍缓冲的全部乐趣。
摆动GUI可以不存在没有像(JWindow
,Window
,JFrame
Frame
或Applet
)顶层容器,虽然它可以在不JPanel
小号存在。
实际上,[JFrame](http://docs.oracle.com/javase/ 7/docs/api/javax/swing/JFrame.html)不会扩展'JComponent'和'JContainer'。 – tenorsax
JFrame
是窗口;它内部可以有一个或多个JPanel
实例。 JPanel
是不是窗口。
你需要一个Swing教程:
我想我们应该只应该扩展一个类,如果我们要制定更具体的超类的类。您可以帧的实例像JFrame frame= new Frame();
,你可以添加像frame.getContentPane.add(widget)
所以对象,现在让我们来看看在框架和JPanel的
JFrame的区别 - 它的一个窗户,用来表示类似的东西,一些共同的东西窗户应该有。这包括各种系统事件(如“窗口关闭”)(允许应用程序退出吗?)的边框(可调整大小的y/n?),标题栏(应用程序名称或其他消息),控件(最小化/最大化允许?)。 JFrame是一个常用于独立应用程序的窗口,如警告窗口或通知窗口,通常会在屏幕上弹出。它使用一个windows侦听器的方法,只要你关闭,打开,最大化,最小化或激活一个窗口,它就会执行。
JPanel - JPanel实际上用作通用容器。这是通常放置更复杂或更大的操作的地方。您可以在一个面板中放置许多操作。 JPanel是JComponent的一个子类,JComponent是Container的一个子类,因此JPanel也是一个容器。有许多方法可用于JPanel,它从它的超类继承。可访问性,路线和图像观察者是它的一些例子。在JPanel中,您还可以放置字段,标签,按钮,复选框,甚至图像以及其他许多功能。它只是一个可以放置视觉和控制的区域。
类似的问题:http://stackoverflow.com/questions/3497889/difference-between-jpanel-jframe-jcomponent-and-japplet –