引用http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html:
作为召集人
add及其变体,remove和setLayout已被重写,以便在必要时转发给contentPane。这意味着你可以写: Frame.add(儿童); 孩子将被添加到contentPane中。
引用核心Java第一卷-基本原理(第9版),第7章,7.4节。
在JavaSE5.0中,JFrame.add方法已经放弃了重新教育程序员的尝试,而只是在内容窗格中调用add。 因此,您可以简单地使用调用 frame.add(c);
但是,当我在http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html上翻阅API文档时,我无法在JFrame中找到覆盖父类的add方法的任何文档。
实际上,我在本页中看到的任何add方法的第一次出现是在页面的“从类java.awt.Container继承的方法”部分。
为什么在add的API文档中没有提到JFrame定义的被重写的JFrame方法?
发布于 2015-12-08 16:18:47
add尚未被重写,并且仍然是从java.awt.Container继承的,但正如您在下面看到的,对addImpl的调用在JFrame中被重写
376 public Component add(Component comp) {
377 addImpl(comp, null, -1);
378 return comp;
379 }JFrame#addImpl()
添加指定的子组件。此方法被重写为有条件地转发对contentPane的调用。默认情况下,子元素将添加到contentPane而不是框架中,有关详细信息,请参阅RootPaneContainer。
https://stackoverflow.com/questions/34159151
复制相似问题