import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.SpringLayout;public class ShowSpringLayout extends JApplet{ public ShowSpringLayout(){
SpringLayout springLayout = new SpringLayout();
JPanel p1 = new JPanel(springLayout);
JButton jbt1 = new JButton();
p1.add(jbt1);
         springLayout.putConstraint(SpringLayout.WEST,p1,5,
SpringLayout.WEST,jbt1);
         JPanel p2 = new JPanel();
p2.add(p1);//1
add(p2);//2
                   //add(p1);
}
}
为什么JButton控件不显示,而把最后1,2两行代码换成add(p1)后就能成功显示,求助????

解决方案 »

  1.   

    panel类下的面板可以包含其他控件,一个界面也可以有多个面板,但是面板里面含面板是没有的,所以你的p2无效。
    javaAPI里有add(object)方法,所以他也不报错
      

  2.   

    你现在是jpanel里添加jpanel,p2添加p1.
      

  3.   

    我愿意跟你讨论这个问题,在我看来,是你的布局没有弄好,你可以试一试,将最后三行代码全部注释掉,看看能不能显示。另外,我可以肯定一点,在extends JFrame中,是可以面板上添加面板的,因为面板本身就是一个容器(我的理解,说的不对请大侠指正)。你的qq号码是多少?我晚上有时间,我们讨论!我的是786230163,看到后加我
      

  4.   

    4楼说的是,panel是一个面板本身是一个容器可以包含其他容器的,还有你的panel面板想要显示需要将整个面板add到JApplet中去,所以才能够显示
      

  5.   


    import javax.swing.JApplet;
    import javax.swing.JButton;
    import javax.swing.JPanel;
    import javax.swing.SpringLayout;public class ShowSpringLayout extends JApplet { public ShowSpringLayout() {
    JButton jbt1 = new JButton("ok");
    SpringLayout springLayout = new SpringLayout();
    JPanel p1 = new JPanel(springLayout);
    p1.add(jbt1);
    springLayout.putConstraint(SpringLayout.WEST, p1, 5, SpringLayout.WEST,
    jbt1);
    add(p1);
    }
    }