我要制作一个窗体,里面有很多的控件,想制作带滚动条的那种,可是为什么不显示呢?以下是代码,请大家帮助看一下,以下是设计的方法:
public void stu_add()
{
 Frame_Add=new JFrame("添加教师信息");   //添加教师的窗口
 Frame_Add.setResizable(false);
 Container pane;
 pane = Frame_Add.getContentPane();
 pane.setLayout(new GridLayout(2,1));
 JPanel p=new JPanel();
 //p.setSize(800,700);
 p.setLayout(null);
 
 JLabel J1=new JLabel("编号:");
 JLabel J2=new JLabel("姓名:");
 JLabel J3=new JLabel("性别:");
 JLabel J4=new JLabel("身份证号码:");
 JLabel J5=new JLabel("年龄:");
 JLabel J6=new JLabel("工作单位:");
 JLabel J7=new JLabel("第一学历:");
 JLabel J8=new JLabel("毕业院校所学专业及毕业时间:");
 JLabel J9=new JLabel("最高学历:");
 JLabel J10=new JLabel("毕业院校所学专业及毕业时间:");
 JLabel J11=new JLabel("学位:");
 JLabel J12=new JLabel("参加工作时间:");
 JLabel J13=new JLabel("现任岗位:");
 JLabel J14=new JLabel("专业技术职务:");
 JLabel J15=new JLabel("兼教学科:");
 JLabel J16=new JLabel("任教学年:");
 JLabel J17=new JLabel("兼任学科:");
 JLabel J18=new JLabel("是否班主任:");
 JLabel J19=new JLabel("周课时:");
 JLabel J20=new JLabel("教师资格种类:");
 JLabel J21=new JLabel("所获得最高荣誉称号及时间:");
 JLabel J22=new JLabel("现行薪级工资等次:");
 JLabel J23=new JLabel("月工资总额:");
 JLabel J24=new JLabel("是否为借调人员:");
 JLabel J25=new JLabel("备注:");
 J1.setFont(new Font("宋体",Font.PLAIN,20));
 J2.setFont(new Font("宋体",Font.PLAIN,20));
 J3.setFont(new Font("宋体",Font.PLAIN,20));
 J4.setFont(new Font("宋体",Font.PLAIN,20));
 J5.setFont(new Font("宋体",Font.PLAIN,20));
 J6.setFont(new Font("宋体",Font.PLAIN,20));
 J7.setFont(new Font("宋体",Font.PLAIN,20));
 J8.setFont(new Font("宋体",Font.PLAIN,20));
 J9.setFont(new Font("宋体",Font.PLAIN,20));
 J10.setFont(new Font("宋体",Font.PLAIN,20));
 J11.setFont(new Font("宋体",Font.PLAIN,20));
 J12.setFont(new Font("宋体",Font.PLAIN,20));
 J13.setFont(new Font("宋体",Font.PLAIN,20));
 J14.setFont(new Font("宋体",Font.PLAIN,20));
 J15.setFont(new Font("宋体",Font.PLAIN,20));
 J16.setFont(new Font("宋体",Font.PLAIN,20));
 J17.setFont(new Font("宋体",Font.PLAIN,20));
 J18.setFont(new Font("宋体",Font.PLAIN,20));
 J19.setFont(new Font("宋体",Font.PLAIN,20));
 J20.setFont(new Font("宋体",Font.PLAIN,20));
 J21.setFont(new Font("宋体",Font.PLAIN,20));
 J22.setFont(new Font("宋体",Font.PLAIN,20));
 J23.setFont(new Font("宋体",Font.PLAIN,20));
 J24.setFont(new Font("宋体",Font.PLAIN,20));
 J25.setFont(new Font("宋体",Font.PLAIN,20));
 
 
 
 JButton add=new JButton("添加");
 add.addActionListener(this);                 //添加
 JButton clear=new JButton("清空");               //清除
 clear.addActionListener(this);
 JButton exit=new JButton("退出");                //退出
 exit.addActionListener(this);
 
 //GridBagLayout gridBag=new GridBagLayout();
 //GridBagConstraints gridBagCon;
   
 num=new JTextField(20);           //工号
     name=new JTextField(20);          //姓名
     sex=new JTextField(20);         //性别
     sfID=new JTextField(20);       //身份证号码
     age=new JTextField(20);          //年龄
     danwei=new JTextField(20);      //工作单位
     firxueli=new JTextField(20);    //第一学历
     firstbyyx=new JTextField(20);           //毕业院校所学专业及毕业时间
     zgxl=new JTextField(20);          //最高学历
     zgbyyx=new JTextField(20);         //毕业院校所学专业及毕业时间
     xuewei=new JTextField(20);       //学位
     gzsj=new JTextField(20);          //参加工作时间
     xrgw=new JTextField(20);      //现任岗位
     zyjszw=new JTextField(20);    //专业技术职务
     rjxk=new JTextField(20);           //任教学科
     rjxn=new JTextField(20);          //任教学年
     jrxk=new JTextField(20);         //兼任学科
     sfbzr=new JTextField(20);       //是否班主任
     zks=new JTextField(20);          //周课时
     jszg=new JTextField(20);      //教师资格种类
     zgry=new JTextField(20);    //所获得最高荣誉称号及时间
     xjgz=new JTextField(20);       //现行薪级工资等次
     ygz=new JTextField(20);          //月工资总额
     sfjd=new JTextField(20);      //是否为借调人员
     bz=new JTextField(20);    //备注
     
 
 
 p.add(J1); J1.setBounds(60, 40, 130, 25);
 p.add(num);num.setBounds(130, 40, 130, 25);
 
 p.add(J2); J2.setBounds(380, 40, 130, 25);
 p.add(name);name.setBounds(500, 40, 130, 25);
 
 p.add(J3); J3.setBounds(60, 80, 130, 25);
 p.add(sex);sex.setBounds(130, 80, 130, 25);
 
 p.add(J4); J4.setBounds(380, 80, 130, 25);
 p.add(sfID);sfID.setBounds(500, 80, 130, 25);
  
 p.add(J5); J5.setBounds(60, 120, 130, 25);
 p.add(age);age.setBounds(130, 120, 130, 25);
 
 p.add(J6); J6.setBounds(380, 120, 130, 25);
 p.add(danwei);danwei.setBounds(500, 120, 130, 25);  
 
 p.add(J7); J7.setBounds(60, 160, 130, 25);
 p.add(firxueli);firxueli.setBounds(130, 160, 130, 25);  
 
 p.add(J8); J8.setBounds(380, 160, 130, 25);
 p.add(firstbyyx);firstbyyx.setBounds(500, 160, 130, 25);
 
 p.add(J9); J9.setBounds(60, 200, 130, 25);
 p.add(zgxl);zgxl.setBounds(130, 200, 130, 25);
 
 p.add(J10); J10.setBounds(380, 200, 130, 25);
 p.add(zgbyyx);zgbyyx.setBounds(500, 200, 130, 25);
 
 p.add(J11); J11.setBounds(60, 240, 130, 25);
 p.add(xuewei);xuewei.setBounds(130, 240, 130, 25);
 
 p.add(J12); J12.setBounds(380, 240, 130, 25);
 p.add(zgbyyx);zgbyyx.setBounds(500, 240, 130, 25);
 
 p.add(J13); J13.setBounds(60, 280, 130, 25);
 p.add(xrgw);xrgw.setBounds(130, 280, 130, 25);
 
 p.add(J14); J14.setBounds(380, 280, 130, 25);
 p.add(zyjszw);zyjszw.setBounds(500, 280, 130, 25);
 
 p.add(J15); J15.setBounds(60, 320, 130, 25);
 p.add(rjxk);rjxk.setBounds(130, 320, 130, 25);
 
 p.add(J16); J16.setBounds(380, 320, 130, 25);
 p.add(rjxn);rjxn.setBounds(500, 320, 130, 25);
 
 p.add(J17); J17.setBounds(60, 360, 130, 25);
 p.add(jrxk);jrxk.setBounds(130, 360, 130, 25);
 
 p.add(J18); J18.setBounds(380, 360, 130, 25);
 p.add(sfbzr);sfbzr.setBounds(500, 360, 130, 25);
 
 p.add(J19); J19.setBounds(60, 400, 130, 25);
 p.add(zks);zks.setBounds(130, 400, 130, 25);
 
 p.add(J20); J20.setBounds(380, 400, 130, 25);
 p.add(jszg);jszg.setBounds(500, 400, 130, 25);
 
 
 p.add(J21); J21.setBounds(60, 440, 130, 25);
 p.add(zgry);zgry.setBounds(130, 440, 130, 25);
 
 p.add(J22); J22.setBounds(380, 440, 130, 25);
 p.add(xjgz);xjgz.setBounds(500, 440, 130, 25);
 
 p.add(J23); J23.setBounds(60, 480, 130, 25);
 p.add(ygz);ygz.setBounds(130, 480, 130, 25);
 
 p.add(J24); J24.setBounds(380, 480, 130, 25);
 p.add(sfjd);sfjd.setBounds(500, 480, 130, 25);
 
 p.add(J25); J25.setBounds(60, 520, 130, 25);
 p.add(bz);bz.setBounds(130, 520, 130, 25);
 
 JScrollPane jsp = new JScrollPane(p);
 //jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
 
 
 JPanel p2 = new JPanel();
 //p2.setSize(800,100);
 p2.add(add);
 p2.add(clear);
 p2.add(exit);
 
 pane.add(jsp);
 pane.add(p2);
 //JScrollPane jsp = new JScrollPane(p);
 //jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
 
 Frame_Add.setBounds(300,120,800,560);          //窗口大小及开始在屏幕上的位置。
 
         Frame_Add.show();
 //Frame_Add.setVisible(true);
 
    
}

解决方案 »

  1.   

    JScrollPane 要使用setSize,外面的JPane要使用setPreferredSize
            jsp.setSize(400,400);  
            jsp.setLocation(0,0); 
     
    p2.setPreferredSize(new Dimension(400,400));  
            p2.setLayout(null);  
            p2.add(jsp);  同时你放到JScrollPane里面的JPanel p的大小要比JScrollPane要大就能看到滚动条了p.setPreferredSize(new Dimension(800,800));