我知道每个顶级容器都有一些层:
根窗格
层窗格
内容窗格
玻璃窗格
但我不明白根窗格是否是顶级容器本身。
窗格和容器之间有什么关系?事实上,当我返回一个带有 的窗格时
getContentPane()
,该对象的类型是Container
!
如果您查看之前的答案或链接,您会发现,在字里行间,问题的实际答案是:
根窗格不是顶级容器本身,但顶级容器有一个根窗格。
由于所有 Swing 顶级容器(即JFrame
和JDialog
)都JApplet
实现了该RootPaneContainer
接口,这意味着您可以通过一般方式访问它们的根窗格(无需检查这是 aJFrame
还是JDialog
....)
关于问题的第二部分,窗格和容器之间的区别,实际上没有区别,窗格是一个java.awt.Container
(或任何子类,特别是javax.swing.JPanel
)。
对 udnerstand 来说重要的是存在于 Swing 顶级容器(根、内容、玻璃、分层)中的各种窗格,为此您必须查看先前答案中发布的链接。