JFrame不能用add()?还是孙卫琴姐姐说错了?
在《java逍遥游记》中P198页提到JFrame和Frame的做大区别在于前者不能通过add()方法加入组件,也不能直接通过setLayout()方法设置布局。以下代码是错误的,运行时将抛出错误
JFrame jFrame = new JFrame("hello");
jFrame.setLayout(new GridLayout(2,1));
jFrame.add(jLabel);
jFrame.add(jButton);
在具体的例子中她又这样说了
/**//wrong
setLayout(new GridLayout(2,1));
add(jLabel);
add(jButton);
*/
她用的是
Container contentPane = getContentPane();
contentPane.setLayout(new GridLayout(2,1));
contentPane.add(jLabel);
contentPane.jFrame.add(jButton);
我直接用的
setLayout(new GridLayout(2,1));
add(jLabel);
add(jButton);
编译和运行都没问题啊 书上说的是对的吗?
------解决方案--------------------我一直都是JFrame对象调用setLayout和add 运行时反正没错
------解决方案--------------------java 1.5 之前的确是不行的
------解决方案--------------------没错,我也是一直这么写的!
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------话说,当年真是这样子的,所有同时介绍awt/swing的书,都会这样写
------解决方案--------------------中文书只能当领进门的作用,修行的时候,只能靠自身,以及更多时候,信任官方资料或网上的英文资料。中文资料,有太多无责任转贴
------解决方案--------------------书,也是根据api才能写得出来的,以api为基准。话说那种书2,3天就要翻完的吧,看多了没意思,把有用的例子要用到的时候在细细地研究一下,多运行,敲一下,如果只是纯粹学知识点去学知识点,效果不好,容易误入歧途。