public class RoundButton extends JButton {
    
    public RoundButton(String label) {
        super(label);//super在此是什么意思?Dimension size = getPreferredSize()
setPreferredSize(size);//这两句话不重复么?

解决方案 »

  1.   

    super(label)//是调用父类(超类)的构造函数。
    从方法名就看得出来,getPreferredSize()的作用是返回一个值;而setPreferredSize(size)的作用是设置一个值。明显是不一样的。
      

  2.   

    1.在带参数的构造函数中,子类是需要显式调用Super()方法调用父类构造函数,实行默认功能的。
    2.一个是setter(),一个是getter()。字段的两种属性
      

  3.   

    super(label);//super在此是调用继承的JButton类,super的意思就是调用最接近父类的意思。
    Dimension size = getPreferredSize()/*因为继承了JButton类。所以调用父类继承下来的                                  getPreferredSize()函数取得size的值,然后在复制给当前类的对象,就是一个封装的概念
    setPreferredSize(size);//这两句话不重复么?
      

  4.   

    extends是不继承构造方法的.必须自己写代码!super(label);调用父类的的构造方法!
      

  5.   

    我是楼主,问一下在此调用父类的构造函数有什么用呢?再有,getPreferredSize()获取值给size,然后再用setPreferredSize(size)设置回去,也就是取出来再送回去,有什么意义么?
      

  6.   

    可能是调用父类的构造方法来设置按钮的名字之类的吧。没有严格遵守javaBean的规范:
    Dimension size = getPreferredSize()
    是将属性preferredSize的值赋给成员变量size;getPreferredSize();
    setPreferredSize(size);
    将属性preferredSize设置为可以读和写。