5

我知道每个顶级容器都有一些层:

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

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

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

4

2 回答 2

3

你还有一个JFrame. 阅读有关如何使用根窗格的更多信息。

根窗格容器JRootPane

“重量级”组件(委托给对等方或主机系统上的本机组件的那些)以较暗、较重的框显示。四个重量级 JFC/Swing 容器(JFrame、JDialog、JWindow 和 JApplet)与它们扩展的 AWT 类相关。这四个组件是 Swing 库中唯一的重量级容器。

于 2010-05-17T15:20:37.353 回答
2

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

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

由于所有 Swing 顶级容器(即JFrameJDialog)都JApplet实现了该RootPaneContainer接口,这意味着您可以通过一般方式访问它们的根窗格(无需检查这是 aJFrame还是JDialog....)

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

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

于 2010-05-18T02:10:52.800 回答