你把loyout,改称
  public AddInterface() {
    init();
  }  public void init() {

解决方案 »

  1.   

    lz把JFrame原有的layout方法给覆盖了,按照2楼的做法应该就行啦。
      

  2.   

    jp1.add(image,"Center");
    jp2.add(lb1);
    jp2.add(tf1);
    jp3.add(lb2);
    jp3.add(rb1);
    jp3.add(rb2);
    jp4.add(lb3);
    jp4.add(cb1);
    jp5.add(lb4);
    jp5.add(cb2);
    jp6.add(lb5);
    jp6.add(tf2);
    jp7.add(lb6);
    jp7.add(tf3);
    jp8.add(bt1);
    jp8.add(bt2);this.add(jp1,"North");
    this.add(jp2);
    this.add(jp3);
    this.add(jp4);
    this.add(jp5);
    this.add(jp6);
    this.add(jp7);
    this.add(jp8); 1。可能由于你 重写了方法layout(),所以在你往JPanel上放完其他控件后,又把他们放到了 this上。  这样说不对。2。首先,layout()方法是用于刷新界面的。由于你 重写了方法layout(),在 layout()方法又使用了this.setLayout()。这样可能又引发了调用layout()进行刷新。从而不停循环导致溢出。3。原理大致和 第二种情况相同。由于this.setVisible(true)引起调用layout()方法。具体我也不清楚只是我的推测。仅供参考。希望能对你有所帮助。