它不是两个相互竞争的机制-a
JPanel是一种 机制
Container(只需查看JPanel
javadocs顶部的类层次结构)。
Jframe.getContentPane()只是返回一个
Container,将
Component您要显示的放置在中
Jframe。在内部,它使用
JPanel(默认情况下-您可以通过调用来更改它
setContentPane())至于为什么它返回a
Container而不是
JPanel-这是因为您应该在该级别上编程一个接口,而不是在该级别上的实现,所以您需要关心的所有事情是您可以将
Components 添加到某些内容中-
即使它
Container是类而不是接口-它提供了执行此操作所需的接口。
至于为什么都
Jframe.add()和
Jframe.getContentPane().add()都做同样的事情-
Jframe.add()被覆盖到的呼叫
Jframe.getContentPane().add()。这并非总是如此-预JDK
1.5,你总是必须指定
Jframe.getContentPane().add()明确和
Jframe.add()扔了
RuntimeException,如果你叫它,但由于诸多抱怨,这在JDK1.5改为做你所期望的东西。



