一个关于contentpane的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 07:04:59
java中直接继承JFrame然后直接用add()方法加入组件和取得容器container cp=JFrame.getContentpane()然后再用cp.add()方法加组件有什么区别?
是不是一定要JFrame.getcontentpane()然后再加入组件呢,能不能直接,JFrame f=new JFrame("windows");然后直接用f.add()加入组件呢?

不能JFrame是个框架是顶层容器要先加上JPanel
所有的GUI组件只能放在JPanel里
f.add只能加JFrame, JRootPane JLayeredPane JMenuBar ContentPane
GlassPane

一样的,他们调用的都是Containter里的add方法
public Component add(Component comp) {
addImpl(comp, null, -1);
return comp;
}

能的,你可以自己去试试,但是一般不这样,放在JPanel里再将JPanel放入JFrame里比较好布局