在Swing中,根窗格和顶级容器之间有什么区别?

xde*_*000 5 swing panes

据我所知,每个顶级容器都有一些层:

根窗格
图层窗格
内容窗格
玻璃窗格

但我不明白根窗格是否是顶级容器本身.

窗格和容器之间的关系是什么?事实上,当我返回一个窗格时 getContentPane(),该对象是类型Container!

jfp*_*ret 2

如果您查看之前的答案或链接,您会发现,字里行间,问题的实际答案是:

根窗格本身不是顶级容器,但顶级容器一个根窗格。

由于所有 Swing 顶级容器(即 、JFrameJDialogJApplet都实现了该RootPaneContainer接口,这意味着您可以以通用方式访问其根窗格(无需检查这是否是 aJFrameJDialog....)

关于问题的第二部分,窗格和容器之间的区别,实际上没有区别,窗格是java.awt.Container(或任何子类,特别是javax.swing.JPanel)。

对于理解来说,重要的是 Swing 顶级容器中存在的各种窗格(根、内容、玻璃、分层),为此您必须查看之前答案中发布的链接。