[求助]getContentPane().add(child) 与 add(child)的本质区别?
getContentPane().add(child) 与 add(child) 有本质什么区别?都可以添加组件,对于用户似乎没有什么区别。能否给个实例详解一下。
----------------解决方案--------------------------------------------------------
在JDK1.5之后,对普通API用户来说,这两个方法其实是一样的.
你可以自己查看javax.swing.JFrame的源代码,其中有这样的:
程序代码:
protected void addImpl(Component comp, Object constraints, int index) {
if(isRootPaneCheckingEnabled()) {
getContentPane().add(comp, constraints, index);
}
else {
super.addImpl(comp, constraints, index);
}
}
注意,add(Component )方法最终的具体实现是调用
addImpl(java.awt.Component, java.lang.Object, int)
方法.而这个isRootPaneCheckingEnabled()方法在你通常使用的时候也是返回true.
----------------解决方案--------------------------------------------------------
谢谢了!~
----------------解决方案--------------------------------------------------------