日期:2014-05-20  浏览次数:20699 次

有点乱了:JAVA Swing的基础问题
使用的是Absolute JAVA 5th英文版电子书教程。
学了一些GUI编程的皮毛。

书上直接使用顶层容器JFrame来添加Swing组件,可我在网上看到这样的说法:
“Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上;
不能对顶层容器进行直接布局”

可为什么书上使用JFrame对象的add()方法和setLayout()方法没有问题呢??
好像只有在setBackground()方法调用时才需要使用getContentPane()!!

Absolute JAVA书是最新的,包括了JAVA7。

难道网上的说法是以前的,对JAVA7不适用了??

求高手指点,谢谢!!

------解决方案--------------------
JFrame的add是将控件添加到了content pane上了,新人不用太追求这个,只要你会用能搞出东西就行了,重点是软件功能实现。
------解决方案--------------------
Sun当时为了方便一部分不适应swing的javaer,提供了add这个快捷方法
------解决方案--------------------
JDK 1.4中JFrame的add()方法addSwing控件会不成功,JDK1.5好了。

我一般为了使软件能在各个版本上都顺利运行,还是getContentPane()后,再addSwing控件。