使用的是Absolute JAVA 5th英文版电子书教程。
学了一些GUI编程的皮毛。书上直接使用顶层容器JFrame来添加Swing组件,可我在网上看到这样的说法:
“Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上;
不能对顶层容器进行直接布局”可为什么书上使用JFrame对象的add()方法和setLayout()方法没有问题呢??
好像只有在setBackground()方法调用时才需要使用getContentPane()!!Absolute JAVA书是最新的,包括了JAVA7。难道网上的说法是以前的,对JAVA7不适用了??求高手指点,谢谢!!

解决方案 »

  1.   

    JFrame的add是将控件添加到了content pane上了,新人不用太追求这个,只要你会用能搞出东西就行了,重点是软件功能实现。
      

  2.   

    你说的意思是JFrame对象直接调用add()相当于以前的getContentPane().add(),这样理解对吗??
      

  3.   

    Sun当时为了方便一部分不适应swing的javaer,提供了add这个快捷方法
      

  4.   

    JDK 1.4中JFrame的add()方法addSwing控件会不成功,JDK1.5好了。我一般为了使软件能在各个版本上都顺利运行,还是getContentPane()后,再addSwing控件。