直接上三段代码:
第一段:
JFrame jf = new JFrame() ;
JPanel contentPane = new JPanel();
jf.setContentPane(contentPane);
第二段:
Container con = getContentPane();
第三段:
JFrame jf = new JFrame();
JPanel topPanel = new JPanel();
jf.getContentPane().add(topPanel);
我的疑惑是:
setContentPane 和 getContentPane 这两个方法有什么区别?
还有就是,Container类也能够实现拿到面板的功能?
PS: 刚学JAVA一学期,在各种资料书中自学,实在对于这些方面比较疑惑。
------解决方案--------------------
看样子楼主还没弄清楚get、set方法的区别,一般要是某一方法名是getXxxx()或setXxxx(),这就涉及到了Java中的信息隐藏,这样的get、set方法是在一些属性的修饰符为私有时,所必要的一种代码类型,get方法有返回值,返回值类型根据属性的类型而定,而set方法是没有返回值的,因为属性为私有,所有你想要在其他类中调用这个属性的时候,利用set方法可以改变这个属性的值,get方法是拿到当前属性,像楼主在代码中贴出的
jf.getContentPane().add(topPanel);
getContentPane()就是楼主某个类中声明的ContentPane对象属性所返回的一个getContentPane对象,这个对象可以操作ContentPane中的属性和方法,也就有了后面的一句add(topPanel)这一句代码了。也就相当于在其他类中调用ContentPane对像中的add方法。文笔就这样...楼主理解不?
------解决方案--------------------
setContentPane 和 getContentPane 这两个方法有什么区别?
设置内容面板——获取内容面板。
设置、获取
Container类也能够实现拿到面板的功能
为什么不能从储物箱里面拿出一个盒子呢?
------解决方案--------------------
getContentPane 返回的 类型是 Container ,其实是一个JPanel。
JPanel 是 Container的间接子类。 所以可以作为 setContentPane的参数